Reduced costs and risks as less software is
developed from scratch
Faster delivery and deployment of system
But requirements compromises are
Advantages and disadvantages
inevitable so system may not meet real
needs of users
Loss of control over evolution of reused
system elements
planning is incremental and it is easier to
Agile process change the process to reflect changing
customer requirements
Process Maturity Approach: focuses on
improving process and project
management, and introducint good
software engineering practice
Approaches to process improvement
-levels of process maturity
Agile approach: focuses on iterative
development and the reduction of overhead
in the software process
Benifits of software prototyping
Improved system usability
A closer match to users real needs
imporved design quality
Improved maintainability
Reduced development effort
Where the software process includes
activities that can anticipate possible
Change anticipation
changes before significant rework is
required
where the process is designed so that
Change tolerance changes can be accommodated at
relatively low cost.
· Firstly requirements spec involve
Consider the integration and
proposing initial requirements for the
configuration process model. Explain
system
why it is essential to repeat the
· Refinement stage, reusable
requirements engineering activity in the
components and applications discovered
process.
for refinement.
finding program faults and correcting
Debugging
these faults
Architectural design: Where you idenfify the overall structure of
the system, the principle components, their relationships and
how they are distributed
Database Design: where you design teh system data structures
and how these are to be represented in a database
Design activites Interface design: where you define the interfaces between
system components
Components selction and design: where you search for
reuseable components (if unavailable you design how it will
operate)
Software testing:
· Each program is tested for correct functionality
Explain why software testing should · Complete program divided into small modules, tested individually.
always be incremental, staged activity. (UNIT TESTING)
· Then whole system is tested with the programs tested above.
Are programmers the best people to (SYSTEM TESTING)
· Beta version released and end user checks (CUSTOMER TESTING)
test the programs that they have
Programmers are not the best persons
developed? · Hard to find own errors.
· Best skills to develop but not to test.
· Reduce human error in code creation
Historically, the introduction of technology has caused
· Potential to produce similar or better software than
profound changes in the labour market and, temporarily
conventionally produced software
at least, displaced people from jobs. Discuss whether
· Cost reduction
the introduction of extensive process automation is likely
to have the same consequences for software engineers.
· Standardised components used, increasing software
IF you don't think it will, explain why not. If you think that
reliability and cost reduction in future maintenance
it will reduce job opportunities, is it ethical for the
· Automation assists software to address primary issues
engineers affected to passively or actively resist the
in the development process. (complexity, reliability, and
introduction of this technology?
productivity)
Pros:
Imagine that a government wants a software program
· Allows changes to prototype
that helps to keep track of the utilization of the country's
· Customer sees prototype and modifications made
vast mineral resources. Although the requirements put
before design is created
forward by the government were not very clear, a
· Better implementation
software company was tasked with the development of
· Satisfied customer
a prototype. The government found the prototype
impressive, and asked it be extended to be the actual
Cons:
system that would be used. Discuss the pros and cons
· Additional cost for prototype creation
of taking this approach
· Delays due to extra time creating prototypes
where system increments are delivered
Incremental Delivery to the customer for comment and
experimentation
• Rather than deliver the system as a single delivery, the
development and delivery is broken down into
increments with each increment delivering part of the
required functionality.
Incremental Delivery • User requirements are prioritised and the highest
priority requirements are included in early increments.
• Once the development of an increment is started, the
requirements are frozen though requirements for later
increments can continue to evolve.
incremental delivery
-Deploy an increment for use by end-users;
-More realistic evaluation about practical use of software;
-Difficult to implement for replacement systems as increments have less functionality than the system
being replaced.
incremental development
Specification, development and validation are
interleaved. May be plan-driven or agile.
-Develop the system in increments and
evaluate each increment before proceeding
incremental development to the development of the next increment;
-Normal approach used in agile methods;
-Evaluation done by user/customer proxy.
The cost of accommodating changing customer
requirements is reduced.
It is easier to get customer feedback on the
Incremental development benefits
development work that has been done.
More rapid delivery and deployment of useful
software to the customer is possible.
The process is not visible. System
Incremental development problems structure tends to degrade as new
increments are added.
· Based on the idea of developing initial
Incremental software development implementation, getting user feedback
could be very effectively used for and evolving software through several
customers who did not have a clear idea versions.
about the systems needed for their · Either plan driven, agile or mixture.
operations. Discuss · Customer can evaluate systems at a
relatively early stage.
Integration and configuration
Based on software resuse where systems are integrated from existing componenets or application systems
Reused elements may be configured to adapt their behaviour and fucntionality to a users requirements
Reuse is now the standard approach for building many types of business system
The system is assembled from existing
Integration and configuration configurable components. May be plan-
driven or agile.
-Requirements specification
-Software discovery and evaluation
Key Process Stages -Requirements refinement
-Application system configuration
-Component adaptation and integration
Specification: defining what a system should do
Design and implementation: defining the
organization of the system and implementing the
system
Many software systems involve
Validation: Checking that it does what the
customer wants
Evolution: changing the system in response to
changing customer needs
pocesses where all of the process
Plan-driven processes activities are planned in advance and
progress is measured against the plan
Process activites
Software processes are inter-leaved sequences of technical,
collaborative and managerial activities with the overall goal of
specifying, designing, implementing and testing a software system
-Process measurement
Process Improvment activities -Porcess analysis
-Process change
is an inital version of a system used to
Prototype demonstrate concepts and try out
design options
The process of converting the system
Software design and implementation
specification into an executable system.
Software evolution
Software is inherently flexible and can change.
as requirements change the software that supports the business must also evolve and change
Products: which are the outcomes of a
process activity
Roles: which reflect the responsibilities of the
people involved in the process
Software Processing descriptions
Pre- and post- conditions: whcih are
statements that are true before and after a
process activity has been enacted or
product produced
The process of establishing what
services are required and the constraints
Software specification
on the system's operation and
development.
Verification and validation (V & V) is
intended to show that a system conforms
to its specification and meets the
Software validation requirements of the system customer.
Involves checking and review processes
and system
testing.
Suggest the most appropriate generic software process [A] -Safety Critical System
-Plan Driven approach with requirements analysed carefully
model that might be used as a basic for managing the -Waterfall model most appropriate with formal transformations between different
development of the following system: development stages
[A]A system to control antilock braking in a car [B] Cutting edge and UI dependent for usability
[B]A virtual reality system to support software -Incremental or Spiral with some UI prototyping
-Agile process may be used
mainenance
[C] Requirements failry well known
[C]A university accounting system that replaces an -Reuse based approach is appropriate
existing system
[D] -Complex UI which is stable and reliable
[D]An interactive travel planning system that helps users -Incremental development appraoch most appropriate
plan journeys with the lowest environmental impact -System requirements will change as user experiance is gained
Adv:
· Focused on software engineering processes and
Suggest two advantages and two
practices used
disadvantages of the approach to · Led to significant improvements in capabilities
process assessment and improvement
that is embodied in the SEI's Capability Disadv:
· Too much overhead in formal process improvement
Maturity framework in small companies
· Maturity estimation with agile processes is difficult
1) User Requirements describe the system functions and features from
the perspective of a user. These are usually abstract. System
Suggest why it is important to make a requirements provide a more detailed explanation of the procedure.
distinction between developing the user 2) User requirements are written in plain and natural language. System
requirements are more detailed with specific specifications that could
requirements and developing system be part of a contract.
requirements in the requirements 3) User requirements start with gathering information, identifying
engineering process important aspects, and understanding them.
System Requirements can only be implemented after the user
requirements are understood and finalised.
The software is implemented either by
developing a program(s) or by
configuring an application system
System implementation
Design and implementation are
interleaved actitivites for most types of
software systems
where a version of the system or part of
the system is developed quickly to check
System Prototyping
the customer's requirements and the
feasibility of design decisions.
- Component testing
Testing Stages - System testing
- Customer testing
Design of architecture:
· System overall structure is defined.
Design of Database:
Using an example, explain why the · Define structure of database as representation.
design activities of architectural design, Design of interface:
· Interface defined here.
database design, interface design and · Ease of use
component design are interdependent Component design and selection
· Reusable components matching requirements are defined here
All design activities above should be followed and integrated. Therefore these work
together and can be called interdependent
Waterfall model
Plan-driven model. Separate and distinct phases
of specification and development.
-Requirements analysis and definition
-System and software design
-Implementation and unit testing
-Integration and system testing
-Operation and maintenance
Waterfall Model Phases
CON: difficulty of accommodating change after the process is
underway. Inflexible
Mostly used for large system engineering projects where a
system is developed at several sites
You have developed a prototype of a · Prototype anticipates changes required
· Requirements engineering prototype helps with
software system and your manager is elicitation and validation
very impressed by it. She proposes that it · System design process: used to explore software
solutions in UI development
should be put into use as a production
· Minimal UI and not intuitive
system, with new features added as · No error detection
required. This avoids the expense of · Vague error messages
· Not viewed as high quality product, only development
system development and makes the aids.
systems immediately useful. Write a