0% found this document useful (0 votes)
22 views

Software Engineering Handout 1 Rev Aug 23 2016

Uploaded by

JAHEIL KNIGHT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Software Engineering Handout 1 Rev Aug 23 2016

Uploaded by

JAHEIL KNIGHT
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

SOFTWARE ENGINEERING Handout 1

 Portability – Portability is the software codebase (the whole collection


Define the following terms: software, system, software system, software of source code used to build a particular application or component)
engineering, software process, software process model and CASE feature to be able to reuse the existing code instead of creating new
(Computer-Aided Software Engineering) code when moving software from one environment to another.
Distinguish between software engineering ad system engineering.
Differentiate between software process and software process model. What Prompts a New System?
State the purpose of CASE tools. 1. The current system may no longer be suitable for its purpose.
List the attributes of good software. Changes in work processes, expansion of the business, changes in
Describe the attributes of good software giving a real life example. business requirements or the environment in which the organization
Discuss the reasons for a new system. operates may all lead to a reassessment of information system
Discuss reasons for a structured approach to system development. requirements.
Discuss key challenges facing software engineering 2. Technological developments may have made the current system
redundant or outdated. Advances in hardware, software and
What is software? telecommunications bring new opportunities, which an organization
Software consists of computer programs and associated documentation. cannot ignore if it is to keep ahead of its rivals.
3. The current system may be too inflexible or expensive or
What is a system? expensive to maintain, or may reduce the organization’s ability to
A system is a set of interrelated components that work together to achieve a respond quickly enough to customers demands.
specific goal.
Reasons for a Structured Approach to Software Development
What is a software system? 1. Increased dependence of many organizations on their computer
A software system consists of a number of separate programs, systems.
configuration files, which are used to set up these programs, system 2. Crises in previous developments: for example, increasing costs of
documentation, which describes the structure of the system, and user software development; dissatisfaction of users and management with
documentation which explains how to uses the system and websites for the quality and suitability of software; increasing length and complexity
users to download recent product information. of the software.
3. Requirements for standard interfaces, both to users and to other
What is software engineering? software.
Software engineering is an engineering discipline which is concerned with 4. Need for tighter control and management of process; visibility of the
all aspects of software production. process; risk management.
5. Importance of the need for the involvement of end users and
What is a software process? management.
A software process is the set of activities and associated results that
produce a software product. There are four fundamental process activities: Key Challenges with Software Development
software specification, software development, software validation and Coping with increasing diversity, demands for reduced delivery times and
software evolution. developing trustworthy software.
1. The heterogeneity challenge. Increasingly, systems are required to
What is a software process model? operate as distributed systems across networks that include different
A software process model is a simplified representation of a software types of computers and with different kinds of support systems. It is
process, presented from a specific perspective. often necessary to integrate new software with older legacy systems
written in different programming languages. The heterogeneity
What is CASE? challenge is the challenge of developing techniques for building
CASE, which stands for Computer Aided Software Engineering, consists of dependable software that is flexible enough to cope with this
software systems which are intended to provide automated support for heterogeneity.
software process activities. 2. The delivery challenge. Many traditional software engineering
techniques are time-consuming. The time they take is required to
Attributes of good software achieve software quality. However, businesses today must be
The software should deliver the required functionality and performance to responsive and change very rapidly. The delivery challenge is the
the user and should be maintainable, dependable, and usable. The challenge of shortening delivery times for large and complex systems
following are attributes: without compromising system quality.
 Maintainability – Software should be written in such a way that it may 3. The trust challenge. As software is intertwined with all aspects of our
evolve to meet the changing needs of customers. This a critical lives, it is essential that we can trust that software. This is especially
attribute because software change is an inevitable consequence of a true for remote software systems accessed through a web page or
changing business environment. web service interface. The trust challenge is to develop techniques
 Dependability– Software dependability has a range of characteristics, that demonstrate that software can be trusted by its users.
including reliability, security and safety. Dependable software should
not cause physical or economic damage in the event of system failure. Three features of a Good Software Design
 Efficiency – Software should not make wasteful use of system 1. It can correctly implement a specification.
resources such as memory and processor cycles. Efficiency therefore 2. It allows efficient code to be developed.
includes responsiveness, processing time, memory utilization, etc. 3. It can be adapted to modify functions and add new functionality.
 Usability – Software must be usable, without undue effort, by the type
of user for whom it is designed. This means that it should have an
appropriate user interface and adequate documentation. (Revised August 2016)

You might also like