• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/27

Click to flip

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
- Efficiency
- Usability


- 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
- Delivery Challenge
- Trust 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.

-Traditional software engineering techniques are time consuming. The time they take isrequired to achieve software quality. However, business organization today must beresponsive and change very rapidly. Their supporting software must change equally. Thedelivery challenge is the challenge to provide the software within short time withoutcompromising software quality.

-Trust challenge is to develop a technique that demonstrates that software can be trusted byits user.

Difference between software engineering and computer science

- Computer science is concerned with the theory and methods that underlies computer and software systems

- software engineering is concerned with the practical problem of producing software


software engineering and system engineering

Software engineering is concerned with all aspect of the development and evolution of the computersystem or other complex system.

-Whereas software plays major roles in system engineering. Systemengineering is there for, concerned with hardware development process design.

Software process

- Software specification
- Software development


- 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

-
Software does not wear out (expire). Hardware exhibits relatively high failure rate early in itslifecycle. Defects are corrected and the failure to steady state level for some time.

-Software is not susceptible to environmental maladies that cause hardware wear out.Undiscovered defects will cause high failure rate early in the life of programs. However thereare corrected during its life, software will undergo changes or maintenance. As the changes aremade it is likely that some new defects will be introduced.

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
-- System properties
-- Characteristics




2. System Design


-- Partitioning requirement


-- Identify Subsystem
-- Assign Requirement to 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. Comm...






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 integration
The components that cannot be exists externally is developed and components are integrated
to create the new system.


System validation
In this phase, the development system is verified and checked whether it sa...






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 of
the each iteration, a new version of software is developed. This iterative process is continued until the
fully satisfied systems have been designed.

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