SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Presented by Goutama Bachtiar
E: goutama@gmail.com | T: @goudotmobi   2008
Software Development Process
•   Activities and steps
•   Models
•   Supporting disciplines
•   Tools
Activities & Steps
•   Requirements
•   Specification
•   Architecture
•   Design
•   Implementation
•   Testing
•   Deployment
•   Maintenance
Models
•   Agile
•   Cleanroom
•   DSDM
•   Iterative
•   RAD
•   RUP
•   Spiral
•   Waterfall
•   XP
•   Scrum
•   V-Model
Supporting Disciplines
•   Configuration management
•   Documentation
•   Quality assurance (SQA)
•   Project management
•   User experience design
Tools
•   Compiler
•   Debugger
•   Profiler
•   GUI designer
•   Integrated development environment
Definition
• A structure imposed on the development of a
  software product
• A.k.a software life cycle & software process
• International standard for describing the
  method of selecting, implementing and
  monitoring the life cycle for software is ISO
  12207 (23 Processes, 95 Activities, 325 Tasks
  and 224 Outcomes)
Requirement Analysis
• Domain Analysis is often the first step in
  attempting to design a new piece of software,
  whether it be an addition to an existing software,
  a new application, a new subsystem or a whole
  new system
• Software Elements Analysis: extracting the
  requirements.
• Incomplete, ambiguous or contradictory
  requirements are recognized by skilled and
  experienced software engineers . This is in
  concern with the Software Process Activity/Steps
Requirement Analysis (cont’d)
• The process where clients requested to give details
  as to what exactly the software should do for them;
  what exactly do they want the software to achieve;
  what expected output/results are expected
• The process tries to gather and understand various
  elements of software that needs to be engineered
• This process can be achieved through question and
  answer sessions. Demonstration of similar products
  can also help the clients to give unambiguous
  answers to the questions asked
Requirement Activities
• Eliciting requirements
  Communicating with customers and users to determine
  what their requirements are. Also called requirements
  gathering
• Analyzing requirements
  Determining whether the stated requirements are
  unclear, incomplete, ambiguous, or contradictory, and
  then resolving these issues
• Recording requirements
  Documenting requirements in various forms, such as
  natural-language documents, use cases, user stories, or
  process specifications
Types of Requirements
• Customer Requirements
  Statements of fact and assumptions that define the expectations of the
  system in terms of mission objectives, environment, constraints, and
  measures of effectiveness and suitability (MOE/MOS).
• Functional Requirements
  Explanation what has to be done, and identified The necessary task, action
  or activity that must be accomplished
• Performance Requirements
  The extent to which a mission or function must be executed;
  Generally measured in terms of quantity, quality, coverage, timeliness or
  readiness
  During requirements analysis, performance requirements will be
  interactively developed across all identified functions based on system life
  cycle factors;
  Characterized in terms of the degree of certainty in their estimate, degree
  of criticality to system success, and their relationship to other
  requirements
Types of Requirements (cont’d)
• Design Requirements
  The “build to,” “code to,” and “buy to” requirements for products and
  “how to execute” requirements for processes expressed in technical data
  packages and technical manuals
• Derived Requirements
  Implied or transformed from higher-level requirement
  Example: a requirement for long range/high speed may result in a design
  requirement for low weight
• Allocated Requirements
  Established by dividing or otherwise allocating a high-level requirement
  into multiple lower-level requirements
  Example: A 100-pound item that consists of two subsystems might result
  in weight requirements of 70 pounds and 30 pounds for the two lower-
  level items
Specifications
• The task of precisely describing the software to be written,
  possibly in a rigorous way
• In practice, most successful specifications are written to
  understand and fine-tune applications that were already
  well-developed, although safety-critical software systems
  are often carefully specified prior to application
  development
• Most important for external interfaces that must remain
  stable
• A good way to determine are sufficiently precise is to have
  a third party review the documents making sure that the
  requirements and Use Cases are logically sound
Architecture
• An abstract representation of that system
• Concerned with making sure the software
  system will meet the requirements of the
  product, as well as ensuring that future
  requirements can be addressed
• Addresses interfaces between the software
  system and other software products, as well
  as the underlying hardware or the host
  operating system
Design, Implementation & Testing
• Implementation is part of process where software
  engineers actually program the code for the project
• Software testing is an integral and important part of
  the software development process. This part of the
  process ensures that bugs are recognized as early as
  possible
• Documenting the internal design of software for the
  purpose of future maintenance and enhancement is
  done throughout development. This may also include
  the authoring of an API, be it external or internal
Deployment & Maintenance
• Deployment starts after the code is appropriately
  tested, is approved for release and sold or
  otherwise distributed into a production
  environment
• Software Training and Support is important
  because a large percentage of software projects
  fail because the developers fail to realize that it
  doesn't matter how much time and planning a
  development team puts into creating software if
  nobody in an organization ends up using it
Deployment & Maintenance
• People are often resistant to change and avoid venturing into an
  unfamiliar area, so as a part of the deployment phase, it is very
  important to have training classes for new clients of your software
• Maintenance and enhancing software to cope with newly
  discovered problems or new requirements can take far more time
  than the initial development of the software
• It may be necessary to add code that does not fit the original design
  to correct an unforeseen problem or it may be that a customer is
  requesting more functionality and code can be added to
  accommodate their requests. It is during this phase that customer
  calls come in and you see whether your testing was extensive
  enough to uncover the problems before customers do
Agile Software Development
• Agile software development processes are built on the
  foundation of iterative development. To that
  foundation they add a lighter, more people-centric
  viewpoint than traditional approaches. Agile processes
  use feedback, rather than planning, as their primary
  control mechanism. The feedback is driven by regular
  tests and releases of the evolving software
• Interestingly, surveys have shown the potential for
  significant efficiency gains over the waterfall method.
  For example, a survey, published in August 2006 by
  VersionOne and Agile Alliance and based on polling
  more than 700 companies claims the following benefits
  for an Agile approach
Rapid Application Development
• A software development methodology, which
  involves iterative development and the construction
  of prototypes
• It is a merger of various structured techniques,
  especially the data driven Information Engineering
  with prototyping techniques to accelerate software
  systems development
• RAD calls for the interactive use of structured
  techniques and prototyping to define user's
  requirements and design the final system
Rapid Application Development (cont’d)
• Pros
  – Promotes strong collaborative atmosphere and dynamic
    gathering of requirements
  – Business owner actively participates in prototyping, writing test
    cases and performing unit testing
• Cons
  – Dependency on strong cohesive teams and individual
    commitment to the project. Success depends on disciplined
    developers and their exceptional technical skills and ability to
    “turn on a dime”. Decision making relies on the feature
    functionality team and a communedecision making process with
    lesser degree of centralized PM and engineering authority.
Iterative Process
• Iterative development prescribes the
  construction of initially small but even larger
  portions of a software project to help all those
  involved to uncover important issues early
  before problems or faulty assumptions can
  lead to disaster. Iterative processes are
  preferred by commercial developers because
  it allows a potential of reaching the design
  goals of a customer who does not know how
  to define what they want
Extreme Programming
• The best-known iterative process
• In XP, the phases are carried out in extremely
  small (or "continuous") steps compared to the
  older, "batch" processes. The (intentionally
  incomplete) first pass through the steps might
  take a day or a week, rather than the months or
  years of each complete step in the Waterfall
  model.
• First, one writes automated tests, to provide
  concrete goals for development
Extreme Programming (cont’d)
• Next is coding (by a pair of programmers), which is complete
  when all the tests pass, and the programmers can't think of
  any more tests that are needed
• Design and architecture emerge out of refactoring, and come
  after coding. Design is done by the same people who do the
  coding
• The incomplete but functional system is deployed or
  demonstrated for (some subset of) the users (at least one of
  which is on the development team). At this point, the
  practitioners start again on writing tests for the next most
  important part of the system.
Chaos Model
• A structure of software development that extends the spiral
  model and waterfall model
• The phases of the life cycle apply to all levels of projects, from
  the whole project to individual lines of code
• The whole project must be defined, implemented, and
  integrated
• Systems must be defined, implemented, and integrated
• Modules must be defined, implemented, and integrated
• Functions must be defined, implemented, and integrated
• Lines of code are defined, implemented and integrated
User Experience Design
• Often abbreviated UX or UE, is a term to describe the
  overarching experience a person has as a result of their
  interactions with a particular product or service, it's delivery,
  and related artifacts, according to their design
• Typical outputs include:
   –   Flows and Navigation Maps
   –   User stories or Scenarios
   –   Persona (Fictitious users to act out the scenarios)
   –   Wireframes (screen blueprints or storyboards)
   –   Prototypes (For interactive or in-the-mind simulation)
   –   Written specifications (describing the behavior or design)
   –   Graphic mockups (Precise visual of the expected end result)
User Experience Design (cont’d)
• Reducing excessive features which miss the
  needs of the user
• Improving the overall usability of the system
• Expediting design and development through
  detailed and properly conceived guidelines
• Incorporating business and marketing goals
  while catering to the user
Waterfall Processes
•   Requirements specification (AKA Verification)
•   Design
•   Construction (AKA implementation or coding)
•   Integration
•   Testing and debugging (AKA validation)
•   Installation (AKA deployment)
•   Maintenance
Waterfall Processes (cont’d)
• After each step is finished, the process proceeds to the next step,
  just as builders don't revise the foundation of a house after the
  framing has been erected.
• This approach is used in high risk projects, particularly large defense
  contracts. The problems in waterfall do not arise from "immature
  engineering practices, particularly in requirements analysis and
  requirements management."
• Often the supposed stages are part of review between customer
  and supplier, the supplier can, in fact, develop at risk and evolve the
  design but must sell off the design at a key milestone called Critical
  Design Review (CDR). This shifts engineering burdens from
  engineers to customers who may have other skills
Other Models
• Capability Maturity Model (CMM) is one of
  the leading models. Independent assessments
  grade organizations on how well they follow
  their defined processes, not on the quality of
  those processes or the software produced
• ISO 9000 describes standards for formally
  organizing processes with documentation
Other Models (cont’d)
• ISO 15504 (Software Process Improvement Capability
  Determination)is a "framework for the assessment of
  software processes". This standard is aimed at setting out a
  clear model for process comparison. SPICE is used much like
  CMMI. It models processes to manage, control, guide and
  monitor software development. This model is then used to
  measure what a development organization or project team
  actually does during software development. This information
  is analyzed to identify weaknesses and drive improvement. It
  also identifies strengths that can be continued or integrated
  into common practice for that organization or team
Other Models (cont’d)
• Six Sigma is a methodology to manage process
  variations that uses data and statistical analysis to
  measure and improve a company's operational
  performance. It works by identifying and
  eliminating defects in manufacturing and service-
  related processes. The maximum permissible
  defects is 3.4 per one million opportunities.
  However, Six Sigma is manufacturing-oriented
  and needs further research on its relevance to
  software development
Other Models (cont’d)
• Test Driven Development (TDD) is a useful output of the Agile camp
  but some suggest that it raises a conundrum.
• TDD requires that a unit test be written for a class before the class
  is written. The class firstly has to be "discovered" and secondly
  defined in sufficient detail to allow the write-test-once-and-code-
  until-class-passes model that TDD actually uses
• This counter to Agile approaches, where developers are still
  encouraged to code early, with light design
• To get the claimed benefits of TDD a full design down to class and
  responsibilities is not necessary. This would count towards iterative
  development, with a design locked down, but not iterative design -
  as heavy refactoring and re-engineering might negate the
  usefulness of TDD
Software Project Management
• Project planning, monitoring and control
  The purpose of project planning is to identify
  the scope of the project, estimate the work
  involved, and create a project schedule.
  Project planning begins with requirements
  that define the software to be developed.
  The project plan is then developed to describe
  the tasks that will lead to completion.
Software Project Management (cont’d)
• Project monitoring and control
  To keep the team and management up to date on the
  project's progress
  If the project deviates from the plan, then the PM
  can take action to correct the problem. Involves
  status meetings to gather status from the team
  When changes need to be made, change control is
  used to keep the products up to date
Software Configuration Management
• Task of tracking and controlling changes in the software
• Include revision control and the establishment of baselines
• Goals
   – Configuration identification (What code are we working
      with?)
   – Configuration control (Controlling the release of a product
      and its changes)
   – Status accounting (Recording and reporting the status of
      components)
   – Review (Ensuring completeness and consistency among
      components)
Software Configuration Management (cont’d)

 – Build management - Managing the process and tools used
   for builds
 – Process management - Ensuring adherence to the
   organization's development process
 – Environment management - Managing the software and
   hardware that host our system
 – Teamwork - Facilitate team interactions related to the
   process
 – Defect tracking - Making sure every defect has traceability
   back to the source
Software Documentation
• Requirements: Identify attributes, capabilities, characteristics,
  or qualities of a system
• Architecture/Design: Overview of software. Includes relations
  to an environment and construction principles in design of
  software components
• Technical: Documentation of code, algorithms, interfaces, and
  APIs
• End User: Manuals for the end-user, system administrators
  and support staff
• Marketing: How to market the product and analysis of the
  market demand
Software Quality Assurance
• Software quality control is a control of products, software
  quality assurance is a control of processes
• Through PPQA audits: Process and Product Quality Assurance
  is the activity of ensuring that the process and work product
  conform to the agreed upon process
• Advantages
   – Improved customer satisfaction
   – Reduced costs of development
   – Reduced costs of maintenance
Software Development Rythms
• The approach of software development rhythms seeks to answer the key
  question of whether programmer productivity is impacted by the various
  agile practices, rather than by any single software development method.
• Example:
   – plan ~ do ~ check ~ act ~ plan ~ do ~ check ~ act ...
   – pair programming ~ solo programming ~ pair programming ~ solo
      programming ...
   – testing ~ coding ~ refactoring ~ testing ~ coding ~ refactoring ...
   – test first programming ~ test last programming ~ test first
      programming ~ test last programming ...
   – standardizing ~ tailoring ~ measuring ~ improving ~ tailoring ~
      measuring ~ improving ...
Problem in Software Projects
• Come from 3 different viewpoints: PM, developers and
  customers
• The problems of PM: poor roles definition, lack of estimating
  & planning skills, lack of decision making skills
  Do need to face schedule, budget & quality constraints
• The problems of developers: lack of knowledge in the
  application area, lack of knowledge about developing
  standards, lack of up to date documentations, deadline
  pressure, changes of application requirements
• The problems customers face include: monetary constraints,
  receiving products past the due date
GUI Builder
• A graphical user interface builder, or GUI designer is a
  software development tool that simplifies the creation of
  GUIs by allowing the designer to arrange widgets using a drag-
  and-drop WYSIWYG editor
• A GUI must be built by manually specifying each widget's
  parameters in code, with no visual feedback until the program
  is run.
• User interfaces are commonly programmed using an event-
  driven architecture, so GUI builders also simplify creating
  event-driven code. This supporting code connects widgets
  with the outgoing and incoming events that trigger the
  functions providing the application logic.
Compiler
• A computer program that translates text written in a
  computer language into another computer language
• The original sequence is usually called the source
  code and the output called object code
• A program that translates from a low level language
  to a higher level one is a decompiler
• To perform many or all of the following operations:
  lexical analysis, preprocessing, parsing, semantic
  analysis, code generation, and code optimization
Debugger
• A technique that allows great power in its ability to halt when
  specific conditions are encountered but which will typically be
  much slower than executing the code directly on the
  appropriate processor.
• When the program crashes, the debugger shows the position
  in the original code if it is a source-level debugger or symbolic
  debugger,
• If it is a low-level debugger or a machine-language debugger
  it shows the line in the disassembly
Debugger (cont’d)
• Offer more sophisticated functions such as running a
  program step by step (single-stepping), stopping
  (breaking) (pausing the program to examine the
  current state) at some kind of event by means of
  breakpoint, and tracking the values of some variables
• The importance of a good debugger cannot be
  overstated. Indeed, the existence and quality of such
  a tool for a given language and platform can often be
  the deciding factor in its use, even if another
  language/platform is better-suited to the task
Performance Analysis
• A.k.a profiling: investigation of a program's
  behavior using information gathered as the
  program executes
• Goal: To determine which sections of a
  program to optimize - usually either to
  increase its speed or decrease its memory
  requirement
Performance Analysis (cont’d)
• Instrumentation
   – Manual: Done by the programmer, e.g. by adding instructions to
      explicitly calculate runtimes.
   – Compiler assisted: Example: "gcc -pg ..." for gprof, "quantify g++
      ..." for Quantify
   – Binary translation: The tool adds instrumentation to a compiled
      binary. Example: ATOM
   – Runtime instrumentation: The program run is fully supervised
      and controlled by the tool. Examples: PIN, Valgrind
   – Runtime injection: Code is modified at runtime to have jumps
      to helper functions. Example: DynInst
Training Lead
•   LinkedIn: www.linkedin.com/in/goutama
•   Email: goutama@gmail.com
•   Google+: www.gplus.to/goudotmobi
•   Skype: goudotinfo
•   Twitter: @goudotmobi

Weitere ähnliche Inhalte

Was ist angesagt?

Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop introBeit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop introbabak danyal
 
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineeringمدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software EngineeringAhmed Alageed
 
Software testing and software development process
Software testing and software development processSoftware testing and software development process
Software testing and software development processGen Aloys Ochola Badde
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software developmentPratik Devmurari
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesTEJVEER SINGH
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process modelPreeti Mishra
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1Rupesh Vaishnav
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)ShudipPal
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Jauhari Ismail
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)ShudipPal
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Ahmed Alageed
 
Software product quality
Software product qualitySoftware product quality
Software product qualitytumetr1
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)ShudipPal
 
Other software processes (Software project Management)
Other software processes (Software project Management)Other software processes (Software project Management)
Other software processes (Software project Management)Ankit Gupta
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notesAAKASH S
 

Was ist angesagt? (20)

Models of SDLC (Contd..) & Feasibility Study
Models of SDLC (Contd..)  & Feasibility StudyModels of SDLC (Contd..)  & Feasibility Study
Models of SDLC (Contd..) & Feasibility Study
 
Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop introBeit 381 se lec 3 - 46  - 12 feb14 - sd needs teams to develop intro
Beit 381 se lec 3 - 46 - 12 feb14 - sd needs teams to develop intro
 
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineeringمدخل الى هندسة البرمجيات _ Introduction to Software Engineering
مدخل الى هندسة البرمجيات _ Introduction to Software Engineering
 
Software testing and software development process
Software testing and software development processSoftware testing and software development process
Software testing and software development process
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Fundamentals of software development
Fundamentals of software developmentFundamentals of software development
Fundamentals of software development
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
eUnit 2 software process model
eUnit 2  software process modeleUnit 2  software process model
eUnit 2 software process model
 
Intoduction to software engineering part 1
Intoduction to software engineering part 1Intoduction to software engineering part 1
Intoduction to software engineering part 1
 
Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)Software Engineering (An Agile View of Process)
Software Engineering (An Agile View of Process)
 
Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?Software Development Lifecycle: What works for you?
Software Development Lifecycle: What works for you?
 
Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)Software Engineering (Software Process: A Generic View)
Software Engineering (Software Process: A Generic View)
 
Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3Agile Method - Lec 1-2-3
Agile Method - Lec 1-2-3
 
Software product quality
Software product qualitySoftware product quality
Software product quality
 
Software Engineering (Process Models)
Software Engineering (Process Models)Software Engineering (Process Models)
Software Engineering (Process Models)
 
Process models
Process modelsProcess models
Process models
 
Other software processes (Software project Management)
Other software processes (Software project Management)Other software processes (Software project Management)
Other software processes (Software project Management)
 
Presentation of se
Presentation of sePresentation of se
Presentation of se
 
CP7301 Software Process and Project Management notes
CP7301 Software Process and Project Management   notesCP7301 Software Process and Project Management   notes
CP7301 Software Process and Project Management notes
 

Ähnlich wie Software Development

Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Fadhil Ismail
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxLeahRachael
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimationssuserb7c8b8
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxAbcXyz302255
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementationyogi syafrialdi
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptxMohamedElshaikh10
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software developmentCeline George
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptxAmna Ch
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
project planning components.pdf
project planning components.pdfproject planning components.pdf
project planning components.pdfsaman Iftikhar
 

Ähnlich wie Software Development (20)

Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 
ecse ppt.pptx
ecse ppt.pptxecse ppt.pptx
ecse ppt.pptx
 
ecse ppt.pptx
ecse ppt.pptxecse ppt.pptx
ecse ppt.pptx
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptxUNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
UNIT 1-IDENTIFY THE NEED FOR SOFTWARE ENGINEERING DEVELOPMENT.pptx
 
what-is-devops.ppt
what-is-devops.pptwhat-is-devops.ppt
what-is-devops.ppt
 
Project Life Cycle and Effort Estimation
Project Life Cycle andEffort EstimationProject Life Cycle andEffort Estimation
Project Life Cycle and Effort Estimation
 
SDLC
SDLC SDLC
SDLC
 
The Waterfall Model
The Waterfall ModelThe Waterfall Model
The Waterfall Model
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Introduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptxIntroduction Software Engineering Basics-Module(01).pptx
Introduction Software Engineering Basics-Module(01).pptx
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
Software testing introduction
Software testing  introductionSoftware testing  introduction
Software testing introduction
 
Proj Mgmt.ppt
Proj Mgmt.pptProj Mgmt.ppt
Proj Mgmt.ppt
 
Software Development Methodologies.pptx
Software Development Methodologies.pptxSoftware Development Methodologies.pptx
Software Development Methodologies.pptx
 
Phases of software development
Phases of software developmentPhases of software development
Phases of software development
 
Lecture3.se.pptx
Lecture3.se.pptxLecture3.se.pptx
Lecture3.se.pptx
 
Sdlc model
Sdlc modelSdlc model
Sdlc model
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
project planning components.pdf
project planning components.pdfproject planning components.pdf
project planning components.pdf
 

Mehr von Goutama Bachtiar

Crypto Currency, Bitcoin and Blockchain
Crypto Currency, Bitcoin and BlockchainCrypto Currency, Bitcoin and Blockchain
Crypto Currency, Bitcoin and BlockchainGoutama Bachtiar
 
Information Security Management System with ISO/IEC 27000:2018
Information Security Management System with ISO/IEC 27000:2018Information Security Management System with ISO/IEC 27000:2018
Information Security Management System with ISO/IEC 27000:2018Goutama Bachtiar
 
Blockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking IndustryBlockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking IndustryGoutama Bachtiar
 
Leveraging Agile Project Management with Scrum
Leveraging Agile Project Management with ScrumLeveraging Agile Project Management with Scrum
Leveraging Agile Project Management with ScrumGoutama Bachtiar
 
Library of Information Technology Icons
Library of Information Technology IconsLibrary of Information Technology Icons
Library of Information Technology IconsGoutama Bachtiar
 
Dealing with Fraud in E-Banking Sphere
Dealing with Fraud in E-Banking SphereDealing with Fraud in E-Banking Sphere
Dealing with Fraud in E-Banking SphereGoutama Bachtiar
 
IS and IT Auditor Roles in Today's New Economy
IS and IT Auditor Roles in Today's New EconomyIS and IT Auditor Roles in Today's New Economy
IS and IT Auditor Roles in Today's New EconomyGoutama Bachtiar
 
Conducting Digital Forensics against Crime and Fraud
Conducting Digital Forensics against Crime and FraudConducting Digital Forensics against Crime and Fraud
Conducting Digital Forensics against Crime and FraudGoutama Bachtiar
 
Utilizing Internet for Fraud Examination and Investigation
Utilizing Internet for Fraud Examination and InvestigationUtilizing Internet for Fraud Examination and Investigation
Utilizing Internet for Fraud Examination and InvestigationGoutama Bachtiar
 
Managing IT Risks in Internet Banking
Managing IT Risks in Internet BankingManaging IT Risks in Internet Banking
Managing IT Risks in Internet BankingGoutama Bachtiar
 
Electronic Payment Fundamentals: When Tech Embracing Payment Industry
Electronic Payment Fundamentals: When Tech Embracing Payment IndustryElectronic Payment Fundamentals: When Tech Embracing Payment Industry
Electronic Payment Fundamentals: When Tech Embracing Payment IndustryGoutama Bachtiar
 
State of Cyber Crime in Banking Sector Today: Threats and Solutions
State of Cyber Crime in Banking Sector Today: Threats and SolutionsState of Cyber Crime in Banking Sector Today: Threats and Solutions
State of Cyber Crime in Banking Sector Today: Threats and SolutionsGoutama Bachtiar
 
The State of ERP in Indonesia: Trends, Opportunities and Challenges
The State of ERP in Indonesia: Trends, Opportunities and ChallengesThe State of ERP in Indonesia: Trends, Opportunities and Challenges
The State of ERP in Indonesia: Trends, Opportunities and ChallengesGoutama Bachtiar
 
Developing and Managing Business Continuity Plan (BCP)
Developing and Managing Business Continuity Plan (BCP)Developing and Managing Business Continuity Plan (BCP)
Developing and Managing Business Continuity Plan (BCP)Goutama Bachtiar
 
Implementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioImplementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioGoutama Bachtiar
 
Understanding IT Strategy, Sourcing and Vendor Relationships
Understanding IT Strategy, Sourcing and Vendor RelationshipsUnderstanding IT Strategy, Sourcing and Vendor Relationships
Understanding IT Strategy, Sourcing and Vendor RelationshipsGoutama Bachtiar
 
Valuing Information Management and IT Architecture
Valuing Information Management and IT ArchitectureValuing Information Management and IT Architecture
Valuing Information Management and IT ArchitectureGoutama Bachtiar
 
Riding and Capitalizing the Next Wave of Information Technology
Riding and Capitalizing the Next Wave of Information TechnologyRiding and Capitalizing the Next Wave of Information Technology
Riding and Capitalizing the Next Wave of Information TechnologyGoutama Bachtiar
 

Mehr von Goutama Bachtiar (20)

Crypto Currency, Bitcoin and Blockchain
Crypto Currency, Bitcoin and BlockchainCrypto Currency, Bitcoin and Blockchain
Crypto Currency, Bitcoin and Blockchain
 
Information Security Management System with ISO/IEC 27000:2018
Information Security Management System with ISO/IEC 27000:2018Information Security Management System with ISO/IEC 27000:2018
Information Security Management System with ISO/IEC 27000:2018
 
Blockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking IndustryBlockchain Essentials - Harnessing the Technology for Banking Industry
Blockchain Essentials - Harnessing the Technology for Banking Industry
 
Delving into Fintech
Delving into FintechDelving into Fintech
Delving into Fintech
 
Leveraging Agile Project Management with Scrum
Leveraging Agile Project Management with ScrumLeveraging Agile Project Management with Scrum
Leveraging Agile Project Management with Scrum
 
Library of Information Technology Icons
Library of Information Technology IconsLibrary of Information Technology Icons
Library of Information Technology Icons
 
PMBOK 6th vs 5th Edition
PMBOK 6th vs 5th EditionPMBOK 6th vs 5th Edition
PMBOK 6th vs 5th Edition
 
Dealing with Fraud in E-Banking Sphere
Dealing with Fraud in E-Banking SphereDealing with Fraud in E-Banking Sphere
Dealing with Fraud in E-Banking Sphere
 
IS and IT Auditor Roles in Today's New Economy
IS and IT Auditor Roles in Today's New EconomyIS and IT Auditor Roles in Today's New Economy
IS and IT Auditor Roles in Today's New Economy
 
Conducting Digital Forensics against Crime and Fraud
Conducting Digital Forensics against Crime and FraudConducting Digital Forensics against Crime and Fraud
Conducting Digital Forensics against Crime and Fraud
 
Utilizing Internet for Fraud Examination and Investigation
Utilizing Internet for Fraud Examination and InvestigationUtilizing Internet for Fraud Examination and Investigation
Utilizing Internet for Fraud Examination and Investigation
 
Managing IT Risks in Internet Banking
Managing IT Risks in Internet BankingManaging IT Risks in Internet Banking
Managing IT Risks in Internet Banking
 
Electronic Payment Fundamentals: When Tech Embracing Payment Industry
Electronic Payment Fundamentals: When Tech Embracing Payment IndustryElectronic Payment Fundamentals: When Tech Embracing Payment Industry
Electronic Payment Fundamentals: When Tech Embracing Payment Industry
 
State of Cyber Crime in Banking Sector Today: Threats and Solutions
State of Cyber Crime in Banking Sector Today: Threats and SolutionsState of Cyber Crime in Banking Sector Today: Threats and Solutions
State of Cyber Crime in Banking Sector Today: Threats and Solutions
 
The State of ERP in Indonesia: Trends, Opportunities and Challenges
The State of ERP in Indonesia: Trends, Opportunities and ChallengesThe State of ERP in Indonesia: Trends, Opportunities and Challenges
The State of ERP in Indonesia: Trends, Opportunities and Challenges
 
Developing and Managing Business Continuity Plan (BCP)
Developing and Managing Business Continuity Plan (BCP)Developing and Managing Business Continuity Plan (BCP)
Developing and Managing Business Continuity Plan (BCP)
 
Implementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft VisioImplementing BPMN 2.0 with Microsoft Visio
Implementing BPMN 2.0 with Microsoft Visio
 
Understanding IT Strategy, Sourcing and Vendor Relationships
Understanding IT Strategy, Sourcing and Vendor RelationshipsUnderstanding IT Strategy, Sourcing and Vendor Relationships
Understanding IT Strategy, Sourcing and Vendor Relationships
 
Valuing Information Management and IT Architecture
Valuing Information Management and IT ArchitectureValuing Information Management and IT Architecture
Valuing Information Management and IT Architecture
 
Riding and Capitalizing the Next Wave of Information Technology
Riding and Capitalizing the Next Wave of Information TechnologyRiding and Capitalizing the Next Wave of Information Technology
Riding and Capitalizing the Next Wave of Information Technology
 

Kürzlich hochgeladen

KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 

Kürzlich hochgeladen (20)

201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 

Software Development

  • 1. Presented by Goutama Bachtiar E: goutama@gmail.com | T: @goudotmobi 2008
  • 2. Software Development Process • Activities and steps • Models • Supporting disciplines • Tools
  • 3. Activities & Steps • Requirements • Specification • Architecture • Design • Implementation • Testing • Deployment • Maintenance
  • 4. Models • Agile • Cleanroom • DSDM • Iterative • RAD • RUP • Spiral • Waterfall • XP • Scrum • V-Model
  • 5. Supporting Disciplines • Configuration management • Documentation • Quality assurance (SQA) • Project management • User experience design
  • 6. Tools • Compiler • Debugger • Profiler • GUI designer • Integrated development environment
  • 7. Definition • A structure imposed on the development of a software product • A.k.a software life cycle & software process • International standard for describing the method of selecting, implementing and monitoring the life cycle for software is ISO 12207 (23 Processes, 95 Activities, 325 Tasks and 224 Outcomes)
  • 8. Requirement Analysis • Domain Analysis is often the first step in attempting to design a new piece of software, whether it be an addition to an existing software, a new application, a new subsystem or a whole new system • Software Elements Analysis: extracting the requirements. • Incomplete, ambiguous or contradictory requirements are recognized by skilled and experienced software engineers . This is in concern with the Software Process Activity/Steps
  • 9. Requirement Analysis (cont’d) • The process where clients requested to give details as to what exactly the software should do for them; what exactly do they want the software to achieve; what expected output/results are expected • The process tries to gather and understand various elements of software that needs to be engineered • This process can be achieved through question and answer sessions. Demonstration of similar products can also help the clients to give unambiguous answers to the questions asked
  • 10. Requirement Activities • Eliciting requirements Communicating with customers and users to determine what their requirements are. Also called requirements gathering • Analyzing requirements Determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues • Recording requirements Documenting requirements in various forms, such as natural-language documents, use cases, user stories, or process specifications
  • 11. Types of Requirements • Customer Requirements Statements of fact and assumptions that define the expectations of the system in terms of mission objectives, environment, constraints, and measures of effectiveness and suitability (MOE/MOS). • Functional Requirements Explanation what has to be done, and identified The necessary task, action or activity that must be accomplished • Performance Requirements The extent to which a mission or function must be executed; Generally measured in terms of quantity, quality, coverage, timeliness or readiness During requirements analysis, performance requirements will be interactively developed across all identified functions based on system life cycle factors; Characterized in terms of the degree of certainty in their estimate, degree of criticality to system success, and their relationship to other requirements
  • 12. Types of Requirements (cont’d) • Design Requirements The “build to,” “code to,” and “buy to” requirements for products and “how to execute” requirements for processes expressed in technical data packages and technical manuals • Derived Requirements Implied or transformed from higher-level requirement Example: a requirement for long range/high speed may result in a design requirement for low weight • Allocated Requirements Established by dividing or otherwise allocating a high-level requirement into multiple lower-level requirements Example: A 100-pound item that consists of two subsystems might result in weight requirements of 70 pounds and 30 pounds for the two lower- level items
  • 13. Specifications • The task of precisely describing the software to be written, possibly in a rigorous way • In practice, most successful specifications are written to understand and fine-tune applications that were already well-developed, although safety-critical software systems are often carefully specified prior to application development • Most important for external interfaces that must remain stable • A good way to determine are sufficiently precise is to have a third party review the documents making sure that the requirements and Use Cases are logically sound
  • 14. Architecture • An abstract representation of that system • Concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed • Addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system
  • 15. Design, Implementation & Testing • Implementation is part of process where software engineers actually program the code for the project • Software testing is an integral and important part of the software development process. This part of the process ensures that bugs are recognized as early as possible • Documenting the internal design of software for the purpose of future maintenance and enhancement is done throughout development. This may also include the authoring of an API, be it external or internal
  • 16. Deployment & Maintenance • Deployment starts after the code is appropriately tested, is approved for release and sold or otherwise distributed into a production environment • Software Training and Support is important because a large percentage of software projects fail because the developers fail to realize that it doesn't matter how much time and planning a development team puts into creating software if nobody in an organization ends up using it
  • 17. Deployment & Maintenance • People are often resistant to change and avoid venturing into an unfamiliar area, so as a part of the deployment phase, it is very important to have training classes for new clients of your software • Maintenance and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software • It may be necessary to add code that does not fit the original design to correct an unforeseen problem or it may be that a customer is requesting more functionality and code can be added to accommodate their requests. It is during this phase that customer calls come in and you see whether your testing was extensive enough to uncover the problems before customers do
  • 18. Agile Software Development • Agile software development processes are built on the foundation of iterative development. To that foundation they add a lighter, more people-centric viewpoint than traditional approaches. Agile processes use feedback, rather than planning, as their primary control mechanism. The feedback is driven by regular tests and releases of the evolving software • Interestingly, surveys have shown the potential for significant efficiency gains over the waterfall method. For example, a survey, published in August 2006 by VersionOne and Agile Alliance and based on polling more than 700 companies claims the following benefits for an Agile approach
  • 19. Rapid Application Development • A software development methodology, which involves iterative development and the construction of prototypes • It is a merger of various structured techniques, especially the data driven Information Engineering with prototyping techniques to accelerate software systems development • RAD calls for the interactive use of structured techniques and prototyping to define user's requirements and design the final system
  • 20. Rapid Application Development (cont’d) • Pros – Promotes strong collaborative atmosphere and dynamic gathering of requirements – Business owner actively participates in prototyping, writing test cases and performing unit testing • Cons – Dependency on strong cohesive teams and individual commitment to the project. Success depends on disciplined developers and their exceptional technical skills and ability to “turn on a dime”. Decision making relies on the feature functionality team and a communedecision making process with lesser degree of centralized PM and engineering authority.
  • 21. Iterative Process • Iterative development prescribes the construction of initially small but even larger portions of a software project to help all those involved to uncover important issues early before problems or faulty assumptions can lead to disaster. Iterative processes are preferred by commercial developers because it allows a potential of reaching the design goals of a customer who does not know how to define what they want
  • 22. Extreme Programming • The best-known iterative process • In XP, the phases are carried out in extremely small (or "continuous") steps compared to the older, "batch" processes. The (intentionally incomplete) first pass through the steps might take a day or a week, rather than the months or years of each complete step in the Waterfall model. • First, one writes automated tests, to provide concrete goals for development
  • 23. Extreme Programming (cont’d) • Next is coding (by a pair of programmers), which is complete when all the tests pass, and the programmers can't think of any more tests that are needed • Design and architecture emerge out of refactoring, and come after coding. Design is done by the same people who do the coding • The incomplete but functional system is deployed or demonstrated for (some subset of) the users (at least one of which is on the development team). At this point, the practitioners start again on writing tests for the next most important part of the system.
  • 24. Chaos Model • A structure of software development that extends the spiral model and waterfall model • The phases of the life cycle apply to all levels of projects, from the whole project to individual lines of code • The whole project must be defined, implemented, and integrated • Systems must be defined, implemented, and integrated • Modules must be defined, implemented, and integrated • Functions must be defined, implemented, and integrated • Lines of code are defined, implemented and integrated
  • 25. User Experience Design • Often abbreviated UX or UE, is a term to describe the overarching experience a person has as a result of their interactions with a particular product or service, it's delivery, and related artifacts, according to their design • Typical outputs include: – Flows and Navigation Maps – User stories or Scenarios – Persona (Fictitious users to act out the scenarios) – Wireframes (screen blueprints or storyboards) – Prototypes (For interactive or in-the-mind simulation) – Written specifications (describing the behavior or design) – Graphic mockups (Precise visual of the expected end result)
  • 26. User Experience Design (cont’d) • Reducing excessive features which miss the needs of the user • Improving the overall usability of the system • Expediting design and development through detailed and properly conceived guidelines • Incorporating business and marketing goals while catering to the user
  • 27. Waterfall Processes • Requirements specification (AKA Verification) • Design • Construction (AKA implementation or coding) • Integration • Testing and debugging (AKA validation) • Installation (AKA deployment) • Maintenance
  • 28. Waterfall Processes (cont’d) • After each step is finished, the process proceeds to the next step, just as builders don't revise the foundation of a house after the framing has been erected. • This approach is used in high risk projects, particularly large defense contracts. The problems in waterfall do not arise from "immature engineering practices, particularly in requirements analysis and requirements management." • Often the supposed stages are part of review between customer and supplier, the supplier can, in fact, develop at risk and evolve the design but must sell off the design at a key milestone called Critical Design Review (CDR). This shifts engineering burdens from engineers to customers who may have other skills
  • 29. Other Models • Capability Maturity Model (CMM) is one of the leading models. Independent assessments grade organizations on how well they follow their defined processes, not on the quality of those processes or the software produced • ISO 9000 describes standards for formally organizing processes with documentation
  • 30. Other Models (cont’d) • ISO 15504 (Software Process Improvement Capability Determination)is a "framework for the assessment of software processes". This standard is aimed at setting out a clear model for process comparison. SPICE is used much like CMMI. It models processes to manage, control, guide and monitor software development. This model is then used to measure what a development organization or project team actually does during software development. This information is analyzed to identify weaknesses and drive improvement. It also identifies strengths that can be continued or integrated into common practice for that organization or team
  • 31. Other Models (cont’d) • Six Sigma is a methodology to manage process variations that uses data and statistical analysis to measure and improve a company's operational performance. It works by identifying and eliminating defects in manufacturing and service- related processes. The maximum permissible defects is 3.4 per one million opportunities. However, Six Sigma is manufacturing-oriented and needs further research on its relevance to software development
  • 32. Other Models (cont’d) • Test Driven Development (TDD) is a useful output of the Agile camp but some suggest that it raises a conundrum. • TDD requires that a unit test be written for a class before the class is written. The class firstly has to be "discovered" and secondly defined in sufficient detail to allow the write-test-once-and-code- until-class-passes model that TDD actually uses • This counter to Agile approaches, where developers are still encouraged to code early, with light design • To get the claimed benefits of TDD a full design down to class and responsibilities is not necessary. This would count towards iterative development, with a design locked down, but not iterative design - as heavy refactoring and re-engineering might negate the usefulness of TDD
  • 33. Software Project Management • Project planning, monitoring and control The purpose of project planning is to identify the scope of the project, estimate the work involved, and create a project schedule. Project planning begins with requirements that define the software to be developed. The project plan is then developed to describe the tasks that will lead to completion.
  • 34. Software Project Management (cont’d) • Project monitoring and control To keep the team and management up to date on the project's progress If the project deviates from the plan, then the PM can take action to correct the problem. Involves status meetings to gather status from the team When changes need to be made, change control is used to keep the products up to date
  • 35. Software Configuration Management • Task of tracking and controlling changes in the software • Include revision control and the establishment of baselines • Goals – Configuration identification (What code are we working with?) – Configuration control (Controlling the release of a product and its changes) – Status accounting (Recording and reporting the status of components) – Review (Ensuring completeness and consistency among components)
  • 36. Software Configuration Management (cont’d) – Build management - Managing the process and tools used for builds – Process management - Ensuring adherence to the organization's development process – Environment management - Managing the software and hardware that host our system – Teamwork - Facilitate team interactions related to the process – Defect tracking - Making sure every defect has traceability back to the source
  • 37. Software Documentation • Requirements: Identify attributes, capabilities, characteristics, or qualities of a system • Architecture/Design: Overview of software. Includes relations to an environment and construction principles in design of software components • Technical: Documentation of code, algorithms, interfaces, and APIs • End User: Manuals for the end-user, system administrators and support staff • Marketing: How to market the product and analysis of the market demand
  • 38. Software Quality Assurance • Software quality control is a control of products, software quality assurance is a control of processes • Through PPQA audits: Process and Product Quality Assurance is the activity of ensuring that the process and work product conform to the agreed upon process • Advantages – Improved customer satisfaction – Reduced costs of development – Reduced costs of maintenance
  • 39. Software Development Rythms • The approach of software development rhythms seeks to answer the key question of whether programmer productivity is impacted by the various agile practices, rather than by any single software development method. • Example: – plan ~ do ~ check ~ act ~ plan ~ do ~ check ~ act ... – pair programming ~ solo programming ~ pair programming ~ solo programming ... – testing ~ coding ~ refactoring ~ testing ~ coding ~ refactoring ... – test first programming ~ test last programming ~ test first programming ~ test last programming ... – standardizing ~ tailoring ~ measuring ~ improving ~ tailoring ~ measuring ~ improving ...
  • 40. Problem in Software Projects • Come from 3 different viewpoints: PM, developers and customers • The problems of PM: poor roles definition, lack of estimating & planning skills, lack of decision making skills Do need to face schedule, budget & quality constraints • The problems of developers: lack of knowledge in the application area, lack of knowledge about developing standards, lack of up to date documentations, deadline pressure, changes of application requirements • The problems customers face include: monetary constraints, receiving products past the due date
  • 41. GUI Builder • A graphical user interface builder, or GUI designer is a software development tool that simplifies the creation of GUIs by allowing the designer to arrange widgets using a drag- and-drop WYSIWYG editor • A GUI must be built by manually specifying each widget's parameters in code, with no visual feedback until the program is run. • User interfaces are commonly programmed using an event- driven architecture, so GUI builders also simplify creating event-driven code. This supporting code connects widgets with the outgoing and incoming events that trigger the functions providing the application logic.
  • 42. Compiler • A computer program that translates text written in a computer language into another computer language • The original sequence is usually called the source code and the output called object code • A program that translates from a low level language to a higher level one is a decompiler • To perform many or all of the following operations: lexical analysis, preprocessing, parsing, semantic analysis, code generation, and code optimization
  • 43. Debugger • A technique that allows great power in its ability to halt when specific conditions are encountered but which will typically be much slower than executing the code directly on the appropriate processor. • When the program crashes, the debugger shows the position in the original code if it is a source-level debugger or symbolic debugger, • If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly
  • 44. Debugger (cont’d) • Offer more sophisticated functions such as running a program step by step (single-stepping), stopping (breaking) (pausing the program to examine the current state) at some kind of event by means of breakpoint, and tracking the values of some variables • The importance of a good debugger cannot be overstated. Indeed, the existence and quality of such a tool for a given language and platform can often be the deciding factor in its use, even if another language/platform is better-suited to the task
  • 45. Performance Analysis • A.k.a profiling: investigation of a program's behavior using information gathered as the program executes • Goal: To determine which sections of a program to optimize - usually either to increase its speed or decrease its memory requirement
  • 46. Performance Analysis (cont’d) • Instrumentation – Manual: Done by the programmer, e.g. by adding instructions to explicitly calculate runtimes. – Compiler assisted: Example: "gcc -pg ..." for gprof, "quantify g++ ..." for Quantify – Binary translation: The tool adds instrumentation to a compiled binary. Example: ATOM – Runtime instrumentation: The program run is fully supervised and controlled by the tool. Examples: PIN, Valgrind – Runtime injection: Code is modified at runtime to have jumps to helper functions. Example: DynInst
  • 47. Training Lead • LinkedIn: www.linkedin.com/in/goutama • Email: goutama@gmail.com • Google+: www.gplus.to/goudotmobi • Skype: goudotinfo • Twitter: @goudotmobi