110 likes | 281 Views
Software Engineering (CSE-3513) Lecture-1. Instructor: Sazid Zaman Khan Lecturer, Department of Computer Science and Engineering, IIUC. Software and it’s constituents .
E N D
Software Engineering (CSE-3513)Lecture-1 Instructor: SazidZaman Khan Lecturer, Department of Computer Science and Engineering, IIUC
Software and it’s constituents • Software is not only a computer program, but it consists of all associated documentation and configuration data that is needed to make these programs operate correctly [Sommerville, p. 29 ]. Software system Programs Configuration files System documentation User documentation
Software and it’s constituents • Programs: Codes which actually form the core of the software. These codes determine the actions of the software based on varying inputs. • Configuration files are used to set up these programs. • System documentation explains how the software is built. This is aimed at developers and advanced users. • User documentation explains how to use the software- aimed at general users.
Fundamental types of software • Generic products: Software which are released to the market considering the general requirements of users. Example: MS Word, Adobe Photoshop. • Customized Products: Software that are ordered and the details of which are specified by the customer. Example: Software used in Chittagong Stock Exchange, Software used in IIUC. • Enterprise Resource Planning is a mix of the above two approaches.
Engineering and Software Engineering • It is an engineering discipline concerned with all aspects of software production. • From now on, think of software as something concrete which can be touched, shaped, designed, - in one word “engineered”. • Engineering Discipline- Engineers make things work by using theories of that discipline selectively. Engineers have to work with organizational and financial constraints. NASA’s theoretical physicists do not think about budgets !!! • Finally software engineering is a systematic way of designing software.
Software engineering, Computer Science, System Engineering • Computer Science is concerned with theory and fundamentals, Software engineering is concerned with practicalities. • System engineers are involved in specifying the system, defining it’s overall architecture and integrating all parts of a system.
Nature of software engineering • Software engineering is characterized by its primary product, which is software - programs that direct a computer to perform some task [umn.edu]. • In software engineering, there is a well developed science, computer science, that covers, among other things, concepts of programming languages, algorithms, data structures, and important aspects of hardware systems and systems software[[umn.edu]].
Some Problems of Software Engineering • First, there is no single domain of knowledge that covers the behavior of all software products [umn.edu]. • Second, the values of software engineering are driven by customers who have an unlimited range of needs [umn.edu]. • The extensive variety of software functionality and values are often dealt by specialization, For example: some firms specialize in medical software.
State of the art of software engineering • ‘State of the art’ technology means the ‘latest’ technology. • State of the art of software engineering means the latest methods/techniques of software engineering. • Do a search on ACM or IEEE xplore with the keywords “state of the art software engineering 2013”. (Part of your assignment).
Attributes of a good software • Maintainability: It should be able to evolve to meet changing needs of customers. • Dependability : Reliability, Security and Safety. Should not cause physical or financial damage in case of system failure. • Efficiency: Should not make wasteful use of CPU, RAM, Bandwidth, etc. • Usability: End users should be able to use the software easily. It should have proper user interface and documentation.