You are on page 1of 12

What software engineering fundamentals apply to all types of software system?

Some fundamental principles apply to all types of software system: Dependability and performance. Understanding and managing the software specification and requirements reuse software that has already been developed rather than write new software Googd software

what is software engineering code of ethics developed by participants drawn from all the continents of the world, was jointly adopted by IEEE-Computer Society . It is a standard for practicing and teaching Software Engineering and a standard for the ethical and professional development, is used to clarify expectations and appropriate behavior of professionals.

what are the fundamental activities that are common to all software processes? 1-Software specification (requirements engineering(: what services are required from the system, and identifying the constraints on the system's operation and development Consists of following phases : Feasibility study

Requirements analysis Requirements specification Requirements validation

2- Software design and implementation converting a system specification into an executable system; except from design and programming may also include refinement of the specification a) design - design of a structure that realizes the specification; architectural design abstract specification interface design data structure design algorithm design

b) implementation - translate this structure into an executable program; remove errors from that program; 3- Software validation (verification and validation) show that a system conforms to its specification and the system meets expectations if the customer buying the system Testing stages: Component (unit) testing - System testing - Acceptance testing - testing with customer data to check that the system meets the customer's needs 4- Software evolution ( software maintenance ) -software must be changing; this activity is when system is in use.

list the 3 generic process models that are used in software engineering? WATERFALL MODEL: STAGES: Requirements analysis and definition - by consultation with users; system specification System and software design - establish overall system architecture Implementation and unit testing - software design is realized as a set of program units; verify that each unit meets its specification Integration and system testing - units are integrated and tested as a complete system if they meet the requirements Operation and maintenance - usually the longest phase; system is in practical use; correcting errors; enhancing services as new requirements are discovered

EVOLUTIONARY DEVELOPMENT: phased development

work with customer to evolve a final system : a) we should start with clearly specified requirements and add new features proposed by the customer; b) start with poorly understood user requirements, experiment with the customer requirements to understand them

STAGES : Outline description concurrently: Specification, Development and Validation

SOFTWARE REUSE
STAGES: Requirements specification Component analysis - search for appropriate components Requirements modification - modify to reflect the available components System design with reuse - design framework for the software Development and integration - integrate components, develop what is needed. System validation no full control over the system evolution

why are iterations usually limited when the waterfall model is used? Inflexible partitioning of the project into distinct stages This makes it difficult to respond to changing customer requirements Therefore, this model is only appropriate when the requirements are well-understood Real projects rarely follow the sequential flow that the model proposes. Changes can cause confusion as the project team proceeds. It is often difficult for the customer to state all requirements explicit. A working version of the program(s) will not be available until late in the project-span. The model leads to blocking states.

Note: The linear model is better than a haphazard approach to software development Inflexible partitioning of the project This makes it difficult to respond to changing customer requirements this model is only appropriate when the requirements are well-understood Changes can cause confusion as the project team proceeds. . what are the three benefits of incremental development compared to the waterfall model? Incremental development has a number of advantages: 1- Customers can use the early increments as prototypes and gain experience that informs their requirements for later system increments. Unlike prototypes, these are part of the real system so there is no re-learning when the complete system is available. 2- Customers do not have to wait until the entire system is delivered before they can gain value from it. The first increment satisfies their most critical requirements so they can use the software immediately. 3-The process maintains the benefits of incremental development in that it should be relatively easy to incorporate changes into the system. 4- As the highest-priority services are delivered first and increments then integrated, the most important system services receive the most testing. This means that customers are less likely to encounter software failures in the most important parts of the system. what are the developmental stages in reuse-based development 1. Component analysis: Given the requirements specification, a search is made for components to implement that specification. Usually, there is no exact match and the components that may be used only provide some of the functionality required. 2. Requirements modification: During this stage, the requirements are analyzed using information about the components that have been discovered. They are then modified to reflect the available components. Where modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions.

3. System design with reuse: During this phase, the framework of the system is designed or an existing framework is reused. The designers take into account the components that are reused and organize the framework to cater for this. Some new software may have to be designed if reusable components are not available. 4. Development and integration: Software that cannot be externally procured is developed, and the components and COTS systems are integrated to create the new system. System integration, in this model, may be part of the development process rather than a separate activity. what are the principal requirements engineering activities? The principal requirements engineering activities are: (a) Feasibility study (b) Requirements elicitation and analysis (c) Requirements specification (d) Requirements validation

why is it increasingly irrelevant to distinguish between software development and evolution Softwares continually changes during their lifetime in response to the changing requirements and customer needs. So software evolution does not stop until the end of the lifetime of the software and so as the software development does not stop. also ,because they are so similar what are the advantages of using incremental development and delivery Generates working software quickly and early during the software life cycle. More flexible less costly to change scope and requirements. Easier to test and debug during a smaller iteration.

Customer can respond to each built. Lowers initial delivery cost. Easier to manage risk because risky pieces are identified and handled during itd iteration.

what are The 4 sectors in each loop in Boehms spiral model? 1. Objective setting: Specific objectives for that phase of the project are defined. Constraints on the process and the product are identified and a detailed management plan is drawn up. Project risks are identified. Alternative strategies, depending on these risks, may be planned. 2. Risk assessment and reduction: For each of the identified project risks, a detailed analysis is carried out. Steps are taken to reduce the risk. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed. 3. Development and validation: After risk evaluation, a development model for the system is chosen. For example, throwaway prototyping may be the best development approach if user interface risks are dominant. If safety risks are the main consideration, development based on formal transformations may be the most appropriate process, and so on. If the main identified risk is sub-system integration, the waterfall model may be the best development model to use. 4. Planning: The project is reviewed and a decision made whether to continue with a further loop of the spiral. If it is decided to continue, plans are drawn up for the next phase of the project.

You might also like