software engineering

  • 格式:doc
  • 大小:512.50 KB
  • 文档页数:16

Advanced software engineeringChapter 1 An Introduction to Software Engineering1.Why software engineering is important?The economies of ALL developed nations are dependent on software.Expenditure on software represents a significant fraction of GNP in all developed countries. More and more, individuals and society rely on advanced software systems. We need to be able to produce reliable and trustworthy systems economically and quickly.It is usually cheaper, in the long run, to use software engineering methods and techniques for software systems rather than just write the programs as if it was a personal programming project. For most types of system, the majority of costs are the costs of changing the software after it has gone into use.2. What is software? What is software engineering?Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market.Software engineering is an engineering discipline that is concerned with all aspects of software production.3. What is the difference between software engineering and computer science? Computer science focuses on theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.4. What are the attributes of good software?Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.5. What is CASE?Software systems that are intended to provide automated support for software process activities.CASE systems are often used for method support.Upper-CASE:Tools to support the early process activities of requirements and design; Lower-CASE:Tools to support later activities such as programming, debugging and testing.6.What is the difference between software engineering and system 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 concerned with developing the software infrastructure, control, applications and databases in the system.System engineers are involved in system specification, architectural design, integration and deployment.7.What are software engineering methods?Structured approaches to software development which include system models, notations, rules, design advice and process guidance.Model descriptions Descriptions of graphical models which should be produced;Rules Constraints applied to system models;Recommendations Advice on good design practice;Process guidance What activities to follow.8.What are the key challenges facing software engineering?Heterogeneity, delivery and trust.Heterogeneity:Developing techniques for building software that can cope with heterogeneous platforms and execution environments;Delivery:Developing techniques that lead to faster delivery of software;Trust:Developing techniques that demonstrate that software can be trusted by its users.9.Issues of professional responsibilityConfidentialityEngineers should normally respect the confidentiality of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.CompetenceEngineers should not misrepresent their level of competence. They should not knowingly accept work which is outwith their competenceIntellectual property rightsEngineers should be aware of local laws governing the use of intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.Computer misuseSoftware engineers should not use their technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).10.Code of ethics – principlesPUBLICSoftware engineers shall act consistently with the public interest.CLIENT AND EMPLOYERSoftware engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.PRODUCTSoftware engineers shall ensure that their products and related modifications meet the highest professional standards possibleJUDGMENTSoftware engineers shall maintain integrity and independence in their professional judgment. MANAGEMENTSoftware engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.PROFESSIONSoftware engineers shall advance the integrity and reputation of the profession consistent with the public interest.COLLEAGUESSoftware engineers shall be fair to and supportive of their colleagues.SELFSoftware engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.11.If you are a software engineer, what code of ethics –principles should you obey? And describe why?SELF :Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.Software engineer is a subject that knowledge update speed quickly.we should follow the pace of software engineer development.on the same time we should improve our ethical ,so that we can use software technology on the right way.For the development of the motherland to contribute an own strength .Chapter 2 Socio-technical Systems2. What modal does the system engineering process usually follow? And why ?Usually follows a ‘waterfall’ model because of the need for parallel development of different parts of the system.3. What are the five steps of the system design process?Partition requirements: Organise requirements into related groups.Identify sub-systems: Identify a set of sub-systems which collectively can meet the system requirements.Assign requirements to sub-systemsL: Causes particular problems when COTS are integrated. Specify sub-system functionality:Define sub-system interfaces: Critical activity for parallel sub-system development.4. Why system evolution is inherently costly?Changes must be analysed from a technical and business perspective;Sub-systems interact so unanticipated problems can arise;There is rarely a rationale for original design decisions;System structure is corrupted as changes are made to it2. System modelling is usually presented as a as a block diagram .3. After completion, the system has to be installed in the customer’s environment.4. The systems engineering process includes specification , design , Development , integration and testing. System integration is particularly critical.5. List three examples of emergent properties. Volume , Reliability, Security , Repairability Usability .6. The system design process includes: Partition requirements, identify sub-systems, Assign requirements to sub-systems , specify sub-system functionality, Define sub-system interfaces.7. What is emergent system properties? Please list three examples of emergent properties?V olume , Reliability, Security , Repairability Usability8. The systems engineering process9. The figure below shows intruder alarm systemAlarm contr olle rV oice synthe siz er Movementse nsors Sir en Door se nsorsTelephonecaller Externalcontrol centreFill the blanks with the component types in alarm system from the figure.Communication: 交流 telephone callerSensor: movement sensor 、 door sensorInterface: 连接 alarm controllerActuator: 执行机构 voice synthesizer Co-ordination: 协调 Siren10. The system design processP artitionrequirementsIdentifysub-syste m s Assign requir ementsto sub-systems Spec ify sub-system functionalityDefine sub-system inte rfaces11. What ’s Emergent property?Emergent properties are a consequence of the relationships between system componentsChapter 3 Software Processes1. Generic activities in all software processes are :Software specification、Software design and implementation、Software validation、Software evolution 。