Software Engineering Index Cards
Software Engineering Index Cards
Software Engineering Index Cards
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
incremental delivery
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
-Requirements specification
-Software discovery and evaluation
Key Process Stages -Requirements refinement
-Application system configuration
-Component adaptation and integration
-Process measurement
Process Improvment activities -Porcess analysis
-Process change
Software evolution
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
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.
- 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.
All design activities above should be followed and integrated. Therefore these work
together and can be called interdependent
Waterfall model