Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Unit 1 se, Lecture notes of Software Engineering

STUDY NOTES

Typology: Lecture notes

2014/2015

Uploaded on 06/29/2015

swati.kharpor
swati.kharpor 🇮🇳

1 document

1 / 5

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Software Engineering
UNIT-1 INTRODUCTION
1.1 FAQs about software engineering
1.1.1 What is software?
Many people equate the term software with computer programs. Software engineers are concerned with developing software
products. There are two fundamental types of software products.
1. Generic products these are stand-alone systems that are produced by a development organization
2. Customized (or bespoke) products these are systems which are commissioned by a particular customer.
1.1.2 What is software engineering?
Software engineering is an engineering discipline that is concerned with all aspects of software production.
1.1.3 What's the difference between software engineering and
Computer science? -------
Essentially, computer science is concerned with the theories and methods that underlie computers and software
systems, whereas software engineering is concerned with the practical problems of producing software.
1.1.4 What is the difference between software engineering and system engineering
System engineering is concerned with all aspects of the development and evolution of complex systems where
software plays a major role. System engineering is therefore concerned with hardware development, policy and
process design and system deployment as well as software engineering.
1.1.5 What is a software process?
A software process is the set of activities and associated results that produce a software product. There are four
fundamental process activities. These are:
1. Software specification
2. Software development
3. Software validation
4. Software evolution
1.1.6 What is a software process model?
A software process model is a simplified description of a software process that presents one view of that process.
Process models may include activities that are part of the software process, software products and the roles of
people involved.
1 A workflow model This shows the sequence of activities in the process along with their inputs, outputs and dependencies.
2. A dataflow or activity model This represents the process as a set of activities, each of which carries out some data
transformation.
3. A role/action model This represents the roles of the people involved in the software process and the activities for which they
are responsible.
I. The waterfall approach This takes the above activities and represents them as separate process phases such as requirements
specification, software design, implementation, testing and so on.
2. Iterative development This approach interleaves the activities of specification, development and validation. An initial system is
rapidly developed from very abstract specifications.
3. Component-based software engineering (CBSE) This technique assumes that parts of the system already exist.
1.1.7 What are the costs of software engineering?
pf3
pf4
pf5

Partial preview of the text

Download Unit 1 se and more Lecture notes Software Engineering in PDF only on Docsity!

Software Engineering

UNIT-1 INTRODUCTION

1.1 FAQs about software engineering

1.1.1 What is software?

Many people equate the term software with computer programs. Software engineers are concerned with developing software products. There are two fundamental types of software products.

  1. Generic products these are stand-alone systems that are produced by a development organization 2. Customized (or bespoke) products these are systems which are commissioned by a particular customer.

1.1.2 What is software engineering?

Software engineering is an engineering discipline that is concerned with all aspects of software production.

1.1.3 What's the difference between software engineering and

Computer science? -------

Essentially, computer science is concerned with the theories and methods that underlie computers and software systems, whereas software engineering is concerned with the practical problems of producing software.

1.1.4 What is the difference between software engineering and system engineering

System engineering is concerned with all aspects of the development and evolution of complex systems where software plays a major role. System engineering is therefore concerned with hardware development, policy and process design and system deployment as well as software engineering.

1.1.5 What is a software process?

A software process is the set of activities and associated results that produce a software product. There are four fundamental process activities. These are:

_1. Software specification

  1. Software development
  2. Software validation
  3. Software evolution_

1.1.6 What is a software process model?

A software process model is a simplified description of a software process that presents one view of that process. Process models may include activities that are part of the software process, software products and the roles of people involved. 1 A workflow model This shows the sequence of activities in the process along with their inputs, outputs and dependencies.

2. A dataflow or activity model This represents the process as a set of activities, each of which carries out some data transformation.

  1. A role/action model This represents the roles of the people involved in the software process and the activities for which they are responsible. I. The waterfall approach This takes the above activities and represents them as separate process phases such as requirements specification, software design, implementation, testing and so on. 2. Iterative development This approach interleaves the activities of specification, development and validation. An initial system is rapidly developed from very abstract specifications. 3. Component-based software engineering (CBSE) This technique assumes that parts of the system already exist.

1.1.7 What are the costs of software engineering?

1.1.8 What are software engineering methods? A software engineering method is a structured approach to software development whose aim is to facilitate the production of high-quality software in a cost-effective way. Methods such as Structured Analysis (DeMarco, 1978) and JSD (Jackson, 1983) were first developed in the 1970s. These methods attempted to identify the basic Functional components of a system; function-oriented methods are still used.

1.1.9 What is CASE? The acronym CASE stands for Computer-Aided Software Engineering. It covers a wide range of different types of programs that are used to support software process activities such as requirements analysis, system modelling, debugging and testing. 1.1.10 what are the attributes of good software? Software products have a number of other associated attributes that reflect the quality of that software. These attributes are not directly concerned with what the software does. Essential Product charilcteristic Descriptiive attributes of good software:

  1. Maintainability
  2. Dependability
  3. Efficiency
  4. Usability 1.1.11 What are the key challenges facing software engineering? Software engineering in the 21st century faces three key challenges:
    1. The heterogeneity challenge: Increasingly^ systems are required to operate as distributed systems across networks. 2. The delivery challenge Many traditional software engineering techniques are time-consuming. The time they take is required to achieve software quality. 3. The trust challenge As software is intertwined with all aspects of our lives, it is essential that we can trust mat software.

1.2 Professional and ethical responsibility Like other engineering disciplines, software engineering is carried out within a legal and social framework that limits the freedom of engineers. Software engineers must accept that their job involves wider responsibilities than simply the application of technical skills. They must also behave in an ethical and morally responsible way if they are to be respected as professionals. Some of these are:

_1. Confidentiality

  1. Competence
  2. Intellectual property rights
  3. Computer misuse_ Professional societies and institutions have an important role to play in setting ethical standards. Organisations such as the ACM, the IEEE (Institute of Electrical and Electronic Engineers) and the British Computer Society publish a code of professional conduct or code of ethics. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the Following Eight Principles:
  4. PUBLIC -
  5. CLIENT AND EMPLOYER -
  6. PRODUCT -
  7. JUDGMENT -
  8. MANAGEMENT -
  9. PROFESSION -
  10. COLLEAGUES -
  11. SELF - a group discussion on ethical issues.

1.3 Socio-technical systems

A system is a purposeful collection of interrelated components that work together to achieve some objective. Systems that include software fall into two categories:

1. Technical computer-based systems are systems that include hardware and software components but not procedures and processes. Examples of technical systems include televisions, mobile phones and most personal computer software. 2.Socio-technical systems include one or more technical systems but, crucially, also include knowledge of how the system should be^ used to achieve some broader objective.

Essential characteristics of socio-technical systems are as follows.

System design is concerned with how the system functionality is to be provided by the components of the system. The activities involved in this process are:

I. Partition requirements You analyze the requirements and organize them into related groups.

2. Identify sub-systems You should identify sub-systems that can individually or collectively meet the requirements. 3. Assign requirements to sub-systems You assign the requirements to subsystems. 4. Specify sub-system functionality You should specify the specific functions provided by each sub-system. This may be seen as part of the system design phase 5. Define sub-system interfaces You define the interfaces that are provided and required by each sub-system.

1.3.1.3 System modeling

During the system requirements and design activity, systems may be modeled as a set of components and relationships between these components. These are normally illustrated graphically in a system architecture model that gives the reader an overview of the system organization.

1.3.1.4 Sub-system development

During sub-system development, Ihe sub-systems identified during system design are implemented. This may involve starting another system engineering process for individual sub-systems or, if the sub-system is software, a software process involving requirements, design, implementation and testing. Sub-systems are usually developed in parallel. When problems are encountered that cut across sub-system boundaries, a system modification request must be made.

1.3.1.5 Systems integration During the systems integration process, you take the independently developed subsystems and put them together to make up a complete system.

1.3.1.6 System Evolution

The system's computers are likely to be replaced with new, faster machines. The organisation that uses the system may reorganise itself and hence use the system in a different way. The external environment of the system may change, forcing changes to the system. 1.3.1.7 System decommissioning

System decommissioning means taking the system out of service after the end of its useful operational lifetime.

1.4 Organizations, people and computer systems

O rganization is managed and by their interactions with other people inside and outside of the organisation.

Human and organizational factors from the system's environment that affect the system design include:

I. Process changes Does the system require changes to the work processes in the environment? If so, training will certainly be required.

2. Job changes Does the system change kill the users in an environment or cause them to change the way they work? 3. Organizational changes Does the system change the political power structure in an organization? The procurement process is normally embedded within the organization that will buy and use the system (the client organization). The process of system procurement is concerned with making decisions about the best way for an organization to acquire a system and deciding on the best suppliers of that system.

1.5 Legacy systems Legacy systems are socio-technical computer-based systems that have been developed in the past, often using older or obsolete technology. These systems include not only hardware and software but also legacy processes and procedures-old ways of doing things that are difficult to change because they rely on legacy software. Changes to one part of the system inevitably involve changes to other components; Legacy systems are often business-critical systems. They are maintained because it is too risky to replace them. For example, for most banks the customer accounting system was one of their earliest systems. Organizational policies and procedures may rely on this system. If the bank were to scrap and replace the customer accounting software (which may run on expensive mainframe hardware) then there would be a serious business risk if the replacement system didn't work properly. Furthermore, existing procedures would have to change, and this may upset the people in the organization and cause difficulties with the bank's auditors.

_1. System hardware

  1. Support software
  2. Application software
  3. Application data
  4. Business processes
  5. Business policies and rules_