Sie sind auf Seite 1von 2

Special Topics in Computer Science - Week 1

Software engineering is concerned with theories, methods and tools for professional software
development. It is also concerned with cost-effective software development. It is engineering
discipline that is concerned with all aspects of software production from the early stages of
system specification through to maintaining the system after it has gone into use.
Software costs > hardware cost / it costs more to maintain than to develop software
Software products:
1. Generic products - stand alone systems that are marketed and sold to any customer who
wishes to buy them. Example: CAD software, project management tools, graphic programs.
Product specification - owned by the software developer and decisions on changes as well.
2. Customised products - software commissioned by specific customer to meet their own needs.
Example: air traffic control software, embedded control systems.
Product specification - owned by customer and they make decisions on required soft. changes.
Software - computer programs and associated documentation. Good softwares attributes are
ability to deliver required functionality and performance to the user and should be maintainable,
dependable and usable. Fundamental software engineering activities are software specification,
software development, software validation and software evolution.
Computer science focuses on theory and fundamentals, while software engineering is
concerned with practicalities of developing and delivering useful software. System engineering
is concerned with all aspects of computer-based systems development including hardware,
software and process engineering. It also involves specifying, building, maintaining and
supporting technical infrastructure. Software eng. is part of this more general process.
Key challenges facing software engineering - coping with increasing diversity, demands for
reduced delivery times and developing trustworthy software. Cost is divided to 60% of dev.costs
and 40% testing costs. For custom software, evolution costs often exceed development costs.
Different techniques are appropriate for different types of system. The web has led to the
availability of software services and the possibility of developing highly distributed service-based
systems. Web-based systems development has led to important advances in programming
languages and software reuse.
4 basic attributes of good software:
1. Maintainability - needs to evolve to meet changing needs of customers. Software change is
an inevitable requirements of a changing business environment.
2. Dependability and security - reliability, security and safety. Dependable software should not
cause physical or economic damage in the event of system failure. Malicious users should not
be able to access or damage the system.
3. Efficiency - should not make wasteful use of system resources such as memory and
processor cycles. It includes responsiveness, processing time, memory utilisation, etc.
4. Acceptability - understandable, usable and compatible with other systems of users.
1

Software specification - customers and engineers define the software that is to be produced and
constraints on its operation. Should be developed using managed and understood development
process. Understanding and managing software specification and requirements.
Software development - software is designed and programmed. Reuse software already made.
Software validation - software is checked to ensure that it is what the customer requires.
Software evolution - software is modified to reflect changing customer and market requirements.
General issues that affect software: heterogeneity (operate across networks with different types
of computer and mobile devices), business and social change, security and trust.
The software engineering methods and tools used depend on type of application developed,
requirements of customer and background of the development team.
Application types: stand-alone applications (run on local computer), interactive transaction
based applications (remote computer, e-commerce), embedded control systems (control and
manage hardware devices), batch processing systems (business, process data in large batch;
process large number of individual inputs to create outputs), entertainment systems (personal
use and entertain user), systems for modelling and simulation (model physical processes or
situations, include many interacting objects), data collection systems (collect data from their
environment using a set of sensors and send data to other systems for processing), systems of
systems (composed of number of other software systems).
Web software engineering:
Software reuse is dominant approach for constructing web-based systems.
Web-based systems should be developed and delivered incrementally (specify all requirements
for such systems in advance).
User interfaces are constrained by capabilities of web browsers (AJAX allows rich interfaces to
be created within a web browser but are still difficult to use).
Software engineering ethics - following set of principles morally correct. ACM/IEEE Code of Eth
Issues of professional responsibility: confidentiality (engineers should respect confidentiality of
their employer or clients irrespective of whether or not formally signed), competence (engineers
should not misrepresent their level of competence, not accept work outwit their competence),
intellectual property rights (use of patents, copyright, etc.), computer misuse (should not use
technical skills to misuse other peoples computers).
Eight ethical principles: public, client & employer, product, judgment, management, profession,
colleagues, self. They make set of standards of behaviour expected of their members.
Ethical dilemmas: disagreement in principle with the policies of senior management, employer
acts in an unethical way and releases a safety critical system without finishing testing of system,
participation in development of military weapons systems or nuclear systems.
Three case studies in book:
Embedded insulin pump control system - take blood sugar sensor; deliver correct dose
System for mental health care patient management - individual care management, patient
monitoring, administrative reporting, privacy, safety
Wilderness weather station
2

Das könnte Ihnen auch gefallen