Introduction
Lecture 1 Click to edit Master subtitle style 14th February, 2013 Dr. Gul-E-Saman
2/20/13
What is a Software?
2/20/13
Application Types
Stand-alone applications
These are application systems that run on a local computer, such as a PC. They include all necessary functionality and do not need to be connected to a network.
Application Types...
These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs. These are systems that are primarily for personal use and which are intended to entertain the user.
Entertainment systems
2/20/13
Application Types...
These are systems that collect data from their environment using a set of sensors and send that data to other systems for processing. These are systems that are composed of a number of other software systems.
Systems of systems
2/20/13
Software Engineering
2/20/13
The economies of all developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. Software engineering expenditure 2/20/13 represents a
Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software Computer science theories are currently insufficient to act as a complete foundation or basis for 2/20/13 software engineering
System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural 2/20/13 design, integration of the finished
Software systems which are intended to provide automated support for software process activities.
Upper-CASE
Lower-CASE 2/20/13
Software Costs
Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain, than it does to develop. Software engineering is concerned with cost-effective software development.
2/20/13
Software Products
Generic products:
Stand-alone systems which are produced by a development organization and sold on the open market to any customer. Systems which are commissioned by a specific customer and developed specially by some contractor.
Customized products:
2/20/13
2/20/13
The relative importance of these characteristics depends on the product and the environment in which it is to be used. In some cases, some attributes may dominate
2/20/13
Efficiency Costs
Cost
Ef ficiency
2/20/13
Specification: Set out the requirements and constraints on the system. Design: Produce a model of the system. Manufacture: Build the system. Test: Check the system meets the required specifications.
2/20/13
The Web is now a platform for running application and organizations are increasingly developing webbased systems rather than local systems. Web services allow application functionality to be accessed over the web. Cloud computing is an approach to 2/20/13 provision of computer services the
When building these systems, you think about how you can assemble them from existing software components and systems.
Web-based systems are complex distributed systems but the fundamental principles of software engineering discussed previously are as applicable to them as they are to any other type of system. The fundamental ideas of software engineering, discussed in the previous section, apply to web-based software in the same way that they 2/20/13
Normally, specifications are incomplete. Very blurred distinction between specification, design and manufacture. No physical realization of the system for testing. Software does not wear out maintenance 2/20/13 does not mean component
Coping with legacy systems ( old, valuable systems must be maintained and updated): coping with increasing diversity and coping with demands for reduced delivery times. Heterogeneity: systems are required to operate as distributed across 2/20/13 networks that include a different type
Systems engineering
Specifying, designing, implementing, validating, deploying and maintaining socio-technical systems. Concerned with the services provided by the system, constraints on its construction and operation and the ways in which it is used.
2/20/13
Little scope for iteration between phases because hardware changes are very expensive. Software may have to compensate for hardware problems.
Inevitably involves engineers from different disciplines who must work together A lot of scope for misunderstanding 2/20/13 here. Different disciplines use a different
S y ste m in te g atio n r
2/20/13
Professional Responsibility
Software engineers should not just be concerned with technical considerations. They have wider ethical, social and professional responsibilities. No clear rights and wrongs about many of these issues:
2/20/13
Balancing Act!
Cost vs. Efficiency Cost vs. Reliability Efficiency vs. User-interface A software engineer is required to analyse these conflicting situations and strike a balance
2/20/13
Ethical Issues
2/20/13
direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance and testing of software systems.
Because 2/20/13
Summary
Challenges
Sources:
http://www.google.com.pk/url? sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&ved =0CDcQFjAC&url=http%3A%2F%2Fcc.ee.ntu.edu.tw %2F~farn%2Fcourses%2FSE %2Fch2.ppt&ei=l3YbUZvXDYmyhAfn_oDADA&usg=AFQjCNE uIVNwL-wD-NxtpCP9hL2vuCSowA http://heavenofit.blogspot.com/2011/09/softwareengineeringian-sommerville7th.html http://www.google.com.pk/url? sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CC4QFj AA&url=http%3A%2F%2Fplg.uwaterloo.ca%2F~holt%2Fcs %2F446%2F08%2Fslides%2F3introduction.ppt&ei=7XcbUezSIMeKhQeMh4GQCA&usg=AF QjCNGhpOSwRRJrzCodM3Nzj6SUD8Kp4g&bvm=bv.4226180 2/20/13
Thank You
2/20/13