Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
27 Cards in this Set
- Front
- Back
- 3rd side (hint)
Attributes of Good Software |
- Maintainability - Dependability |
Software should be written in such a way that it may evolve to meet the changing requirementof the customers. This is a critical attribute because software changes continuously to satisfy thechanging business environment and customer requirement. c. EfficiencySoftware should not make wasteful use of system resources such as memory and processor.Efficiency includes responsiveness, processing time, memory utilization, etc. d. UsabilitySoftware must be useable without wasting effort of user for whom it is designed. This meansthat it should have appropriate user interface and adequate documentation. e. DependabilitySoftware dependability has a range of characteristics including reliability, security and safety.Dependable software should not cause physical and economical damage in the event of systemfailure. |
|
Challenges Facing Software Engineering |
- Heterogeneity Challenge |
Every organization is required to operate as a distributed system across the network thatincludes different types of computer and with different types of supporting system. Theheterogeneity challenge is the challenge of developing software that is flexible enough tocope with heterogeneous system. |
|
Difference between software engineering and computer science |
- Computer science is concerned with the theory and methods that underlies computer and software systems |
|
|
software engineering and system engineering |
Software engineering is concerned with all aspect of the development and evolution of the computersystem or other complex system. |
|
|
Software process |
- Software specification - Software validation - Software evolution |
set of activities and associated results that produce a software product |
|
Software characteristics |
Although some similarities exist between software development and hardwareManufacture, the two activities are fundamentally different in both activities, high quality isachieved through design |
|
|
System |
well organized collection of inter-related components that work together according toplan achieve central objectives, the components in system are interdependent so failure in onecomponent can be propagate through the system and affect operation of other component. |
|
|
System Properties |
Volume Usability Repair ability Security Reliability |
|
|
System Engineering |
1. Requirement Definition -- Abstract functional requirement 2. System Design -- Partitioning requirement -- Identify Subsystem --Specify Subsystem Functionality --Define Subsystem Interface 3. System Modeling 4. System Development |
|
|
Water fall model |
- Requirement Specification - Software design - Coding and Testing - Integration and System Testing - Implementation - Evaluation |
advantage of waterfall model is that documentation is produced at each phase and that isfit with other engineering process models. Its major problem is it’s inflexible partitioning of thesoftware development process into distinct stage. Commitments must be made at an earlystage in the process which makes it difficult to respond to changing customer requirementTherefore the waterfall model should only be used when the requirements are wellunderstood. |
|
Evolutionary Development Model |
There are two fundamentalevolutionary development models: - Prototyping Model - Exploratory Model |
|
|
Component Based Software Engineering Model |
|
Development and integrationThe components that cannot be exists externally is developed and components are integratedto create the new system. System validationIn this phase, the development system is verified and checked whether it satisfy requirementspecification property or not. If the system do not specify user requirements, the new versionof system should be redesigned. |
|
process models that had beenexplicitly designed to support process iteration |
- Increment delivery - Spiral Model |
|
|
Increment delivery |
- Definerequirement - Assignincrements torequirement - Design systemarchitecture - Developmentsystemincrement - Validateincrement - Integrateincrement - Validate system |
|
|
Advantage of incremental delivery |
- Costumers do not have to wait until the entire system is delivered - Costumer gains valuableinformation from the increments satisfies their most critical requirements so they can usethe software immediately. - Costumer can use the early increments as a prototypes and gain experience that informtheir requirements for later increments. - There is lower risk of overall project failure - As the high priority service are delivered first and the later increments are integrated withthem. |
|
|
Spiral Model |
After combination ofthe each iteration, a new version of software is developed. This iterative process is continued until thefully satisfied systems have been designed. |
|
|
Spiral Model |
- Requirement determination and object setting - Evaluate Requirement and Risk Analysis - Development and Validation - Planning |
- user requirements are identified and specific objective of the system areidentified. Constraint on the process and products are identified and a detailed managementplan is drawn up. During this, the alternative solutions are specified and analyzed. - Feasibility study should be performed to verify the requirements and check whether the projectis feasible or not. Project risks are identified and analyzed. After analyzing risk, proper actionsare carried out to reduce the risk. - After the risk evaluation, a development model for the software is designed. The software aredeveloped and verified according to the requirement specification. - The project is received and a decision is made whether to continue the project or not. If it isdecided to continue, plans are drawn out for the next phase of the project. |
|
Software Activities |
1. Software specification 2. Software Design and Implementation: |
|
|
Software specification pg19 |
- Feasibility Study - Requirement Elicitation and Analysis - Requirement Specification - Requirement Validation |
- process of understanding and defines what services are required from the system - identifying the constraints on the system operation and designing |
|
Software Design and Implementation: |
- process of converting systemspecification into an executable system |
|
|
Software Design and Implementation |
This is a general model of design process a) Last two stages of design, data structure and algorithm design may be delayed until theimplementation process. b) If exploratory approach to design is used, the system interface may be designed after the dataStructure has been specified. c) The abstract specification stage may skipped, although it is usually an essential part of criticalsystem design. |
Architectural designThe system making of the system and their relationship are identified and documented. Abstract specificationFor each sub system and abstract specification of its services and constraint under which it mustoperate are identified and specified. Interface designFor each sub system its interface with other sub system is design and documented. The interfacespecification must allow the sub system to be used without knowledge of the sub system operation. Component Design Services are allocated to components and the interfaces of these components are designed. Data structure designThe data structure used in the system implementation is designed in detail and specify. Algorithm designThe algorithm used to provide services are designed in detail and specify. |
|
System validation |
1). Component or unit test 2). System testing 3). Acceptance testing |
|
|
Software Evolution |
|
|
|
Project Management |
- project management evolvesthe planning, monitoring and control of the person, process and events that occur as software evolvesfrom a primary concept to an operational implementation - software managers are responsible forplanning scheduling project development - upervise the work to ensure that it is carried out to therequired standards and monitor program to check that development is on time within budget. |
|
|
...project management |
- The Project is Intangible Software project manager cannot see the progress, so it is difficult to schedule and manage activities - There is no standard software process In engineering disciplines with a long history, the process is tried and tested. Software processes varydramatically from one organization to other. Large Software Projects are often one of Project Large software projects are usually different to some ways from previous project. |
|
|
Management activities |
most managers takeresponsibilities at some stage for some all of the following activities. - Personal writing - Project planning and scheduling - Project cost - Project monitoring and reviews - Personal selection and evaluation - Report writing and presentation |
|
|
Project plan pg27 |
- Introduction - Project organization - Risk analysis - Hardware and software resources requirement - Work break down - Project schedule -Monitoring and reporting mechanism |
|