Software Engineering Index Cards

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

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

You might also like