What is a software development process?
•A structured set of activities required to develop a software system
•Many different software processes but all involve:
–Specification–defining what the system should do;
–Design and implementation–defining the organization of the system and implementing the system;
–Validation–checking that it does what the customer wants;
–Evolution–changing the system in response to changing customer needs.
•A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
What are some typical development process activities?
What is the plan-driven process and what is the agile process?
What are lifecycle models?
What are some generic software process models?
•The waterfall model
–Plan-driven model. Separate and distinct phases of specification and development.
•Incremental development (Evolutionary development)
–Specification, development and validation are interleaved. May be plan-driven or agile.
•Reuse-oriented software engineering (Component-based software engineering)
–The system is assembled from existing components.
What is a process pattern?
–describes a process-related problem that is encountered during software engineering work,
–identifies the environment in which the problem has been encountered, and
–suggests one or more proven solutions to the problem.
Stated in more general terms, a process pattern provides you with a template[Amb98]—a consistent method for describing problem solutions within the context of the software process.
What are some process pattern types?
What are some process assessment and improvement techniques?
What is software lifecycle?
•Sequence of processes completed as a software project moves from inception to retirement
•At beginning of project development, choose
–Software development paradigm
–Software development process model
•Define the order/manner in which software life cycle processes are performed
•Then you are ready to start software specification, design, implementation, validation
What process activities are there?
What is software specification?
The process of establishing what services are required and the constraints on the system’s operation and development.
What are the steps in the requirement engineering process?
–Feasibility study
•Is it technically and financially feasible to build the system?
–Requirements elicitation and analysis
•What do the system stakeholders require or expect from the system?
–Requirements specification
•Defining the requirements in detail
–Requirements validation
•Checking the validity of the requirements
What is software design and implementation?
•The process of converting the system specification into an executable system.
•Software design
–Design a software structure that realises the specification;
•Implementation
–Translate this structure into an executable program;
•The activities of design and implementation are closely related and may be inter-leaved.
What is a structured method in designing a software system?
•Systematic approaches to developing a software design. •The design is usually documented as a set of graphical models. •Possible models –Object model; –Sequence model; –State transition model; –Structural model; –Data-flow model.
What is software validation?
What are the testing stages?
•Component or unit testing
–Individual components are tested independently;
–Components may be functions or objects or coherent groupings of these entities.
•System testing
–Testing of the system as a whole. Testing of emergent properties is particularly important.
•Acceptance testing
–Testing with customer data to check that the system meets the customer’s needs.
What is software evolution?
What are different system classifications?
•Technical computer-based systems
–Systems that include hardware and software but where the operators and operational processes are not normally considered to be part of the system.
•Socio-technical systems
–Systems that include technical systems but also operational processes and people who use and interact with the technical system. Socio-technical systems are governed by organizational policies and rules.
What are emergent properties?
What is reliability?
“the ability of a system to deliver services as specified. Reliability can be specified quantitatively as a probability of failure on demand or as the rate of occurrence of failure.”
What is systems engineering?
•Specifying, designing, implementing, validating, deploying and maintaining socio-technical systems.
•Concerned with the services provided by the system, constraints on its construction and operation and the ways in which it is used.
•Involves engineers from different disciplines who must work together
–Much scope for misunderstanding here. Different disciplines use a different vocabulary and much negotiation is required.
What are system requirements problems?
•Complex systems are usually developed to address wicked problems
–Problems that are not fully understood;
–Changing as the system is being specified.
•Must anticipate hardware/communications developments over the lifetime of the system.
•Hard to define non-functional requirements (particularly) without knowing the component structure of the system
What are the steps in the system design process?
•Partition requirements
–Organize requirements into related groups.
•Identify sub-systems
–Identify a set of sub-systems which collectively can meet the system requirements.
•Assign requirements to sub-systems
–Causes particular problems when COTS are integrated. (COTS to be looked at separately.)
•Specify sub-system functionality.
•Define sub-system interfaces
–Critical activity for parallel sub-system development
What are integral processes?
Integral processes take place during all phases of development
–Verification and Validation:
–Software Configuration and Management
•Configuration Control, Revision management
•Tracking and control of changes
–Documentation development / distribution
–Training
•Plan, Develop, Validate, Implement training program