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)