收藏 分享(赏)

软件工程基础教程(英文版).ppt

上传人:dreamzhangning 文档编号:3351395 上传时间:2018-10-17 格式:PPT 页数:68 大小:1.33MB
下载 相关 举报
软件工程基础教程(英文版).ppt_第1页
第1页 / 共68页
软件工程基础教程(英文版).ppt_第2页
第2页 / 共68页
软件工程基础教程(英文版).ppt_第3页
第3页 / 共68页
软件工程基础教程(英文版).ppt_第4页
第4页 / 共68页
软件工程基础教程(英文版).ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、1,Welcome to Software Engineering (Basics),About this course (class hours, textbook etc) “软件工程(基础)”- “基础科学也有理论和实验两方面。应用科学也有理论和实验。没有什么孤立存在的基础理论。”李政道1974年 Covered topics Grading policies Chapter 1“Software engineers make software engineering works. Some of you may spend most of your life on it.”Who kn

2、ows? “软件工程课程的生命力甚至超越计算机-软件学院.”-一个老师说,2,Why Do We Study It? 学习的目标和动力是什么?,Learn the basic concepts, principles, process and methods of developing high quality and large-scale of software:SE, 基本专业技能 Learn to be Professional:养成良好的职业精神和习惯 Learn how to learn SE (by self) 优秀的学习能力 Learn to use some importan

3、t tools in SE, 子曰:“工欲善其事,必先利其器 ”是也 Practice projects in teams, “理论得来终觉浅,觉知此事需躬行.” “Become a qualified software engineer or know what can be (知其然,并知其所以然)”,3,Some New Trends (2025), 学习的目标和动力是什么?,Integration: Software Engineering and System Engineering Emphasis on users and end-value Increasingly rapid

4、 change Increasingly complex: systems of systems (Clouds)You name it,Encouraged By Movie “AntiTrust”,This business is a living organism There is no rule for idle time or second guessing; no second placeThis business is Binary, you are one or zero (Alive or dead) Any one with good idea can put a mono

5、poly out of business,The Challenges and Opportunities of the Global Software Industry (1),Networking (Internet, distributed) Service-orientedGlobalization (English),(Intelligent Web) From static to dynamic From passive to activeFrom information browsing to Intelligent Web From machine computing to C

6、loud computing,The Challenges and Opportunities of the Global Software Industry (2),相对目前“打包式”软件,为用户提供智能化的“服务式”软件。SOA: service-oriented architecture, SaaS,Networking (Internet, distributed) Service-orientedGlobalization (English),The Challenges and Opportunities of the Global Software Industry (3),强调

7、开放性、交互性 支持主流的开放式标准 人才的全球化,Q:对中国软件业有什么启示和挑战?,Networking (Internet, distributed) Service-orientedGlobalization (English),8,About this course (2),参考书: 软件工程实践者的研究方法(英文精编版.第6版) ,Roger S. Pressman, 2005. ISBN978-7-111-24138-6,教材: ,2012.1.,9,About this course (3),Class time: Class Room:,10,About this cours

8、e (4),Major topics: Introduction to SE, with emphasis on process, requirements, modeling, design methods, project management and testing etc.Guided by theories and learn from practice“ Practice without theory is blind, theory without practice is sterile.” “听到的可能被忘记;看到的也许能了解;亲自动手做过的才会理解深刻。”,11,About

9、this course (5),Grading Policies (50% theories +50% practice)5% assignments ( Homework 5%)lab: 10% Project: 15%,最后小组长打分 20% Midterm, in-class, Tue. (8th week ) 50% Final exam (any less?) 注意: 可能会依据大家的表现有小的调整,12,Closely Related Courses,13,About this course杨芙清院士等,14,Major Topics/Tasks,分析,设计,编码,测试(四分法)

10、背景,需求分析,过程模型,模型设计,计划,实施,测试,部署 (主要阶段),15,课程章节参考ACM and IEEE-CS,课程体系依据:Guided by the Software Engineering Body of Knowledge ( SWEBOK, http:/www.swebok.org/, 2004 ),16,Software 知识体系及其关联,软件构造,软件设计,软件测试,软件维护,软件工程管理,SPM,软件工程工具,软件质量,软件安全,软件工程标准,软件需求,交付,后续版本,17,Lecture Schedule (temp 1),18,Lecture Schedule

11、(temp 2),19,Some Good and Bad Examples,以前同学的表现, “好的表现都比较相似,不好的各有各的不同(的表现)。”,20,Easy or Difficulty, Why?,Technically : Computation, Understanding; Culturally : Habits, communication, management, team work, documents 难度系数 (量化,工程化步骤和细节),21,Exchange Presentation 换位互动,“You have time to show.” 期中项目检查: pre

12、sentation contest Final Project Acceptance: Presentation+Demo,22,How to learn this course effectively? (雄鹰和蜗牛) Three reasons to work harder and smarter,1) UESTC school of software engineering 2) National-wide: many others 3) International-wide:“The 21th century will see China to become a giant.”,How

13、 to Run Applications Fasteror improve performance ?,From Human: there are 3 ways to improve performance: Work Harder, Focus (投入多少时间和精力?)348 Work Smarter Get Help Computer Analogy Using faster hardware Optimized algorithms and techniques used to solve computational tasks Multiple computers to solve a

14、 particular task,24,In-Class Behaviors (课堂纪律),Consistent with general university requirements 1. Noise (such as talking with other students without instructors permission, playing games or music, sleep etc) can NOT be allowed. “宁静致远”2. Two persons record each class (used to be)3. Respect each other

15、and be patient 4. Be proactive for extra credit5. Late, early leaving, absence : Late coming can only sit at the back (last row), early leaving, absent ,ok? 6. PLAGIARISM ,任何形式的作弊行为将受最严惩罚.,25,Software Engineering: A Co-evolutionary lifecycle Approach,Instructor:I cannot wait to learn SE!,26,Chapter

16、1 An Introduction to Software Engineering,Contents,Chapter 1: Product,Chapter 1: Logics,Role(Whats for)?,Definition(Whats It)?,Legacy (before)?,Changing(Current&Future)?,Myths(Whats It)?,Software (Engineering),29,Brief History,The pioneering era (before 1945) The origins (1945-165, female vs. male)

17、The crisis (1965-1985) - now information overflow No silver bullet (F. brooks), 1985-1989 The internet (1990-1999), Lightweight methodologies (2000-presnt) current,30,Current trends,Agile +prototype Model-driven Software as a Service (Cloud computing) “In 2006, Money Magazine and Salary com rated so

18、ftware engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field. ”,31,Softwares Dual Role,Software is a product Delivers computing potential Produces, manages, acquire

19、s, modifies, displays, or transmits informationSoftware is a vehicle for delivering a product Supports or directly provides system functionality Controls other programs (e.g., an operating system) Effects communications (e.g., networking software) Helps build other software (e.g., software tools),32

20、,What is Software (Technically)?,Software is a set of items or objects that form a “configuration” that includes 1)programs 2) documents 3) data (inputs) 4) outputs.,33,What is Software?,Qs: What do you think? Software is both a logical and a physical system element. Software is a set of items or ob

21、jects that form a “configuration” that includes programs , documents , data and other related items. Software is an abstract representation of a process (software process is introduced in the following chapter).,34,What is Software?,software is engineered (not manufactured) software doesnt wear out

22、(even BASIC) but UPGRADE software is complex (component-based, custom built) “Software engineers are in a serious business, have to be hard/smart-working.”,35,Software Characteristics (1),Software is developed or engineered, it is not manufactured. The concept of raw material is non-existent here. I

23、t is better visualized as a process, rather than a product. The human element is extremely high in software development, compared to manufacturing. The development productivity is highly uncertain, even with standard products, varying greatly with skill of the developers. The development tools, tech

24、niques, standards, and procedures vary widely across and within an organization. Quality problems in software development are very different from those in manufacturing.,36,Software Characteristics (2),Software development presents a job-shop environment. It cannot be assembled from existing compone

25、nts. Hence each product is custom-built and unique. Human skill, the most important element in a job shop, is also the most important element in software development.,37,Software Characteristics (3),Time and effort for software development are hard to estimate. Programmers tend to be optimistic, not

26、 realistic, and their time estimates for task completion reflect this tendency. Doing the job in a clever way tends to be a more important consideration than getting it done adequately, on time, and at reasonable cost. Interesting work gets done at the expense of dull work, and documentation, being

27、a dull work, gets the least priority. Programmers have trouble in communication.,38,Software Characteristics (4),User requirements are often not conceived well enough; therefore a piece of software undergoes many modifications before it is implemented satisfactorily. There are virtually no objective

28、 standards or measures by which to evaluate the progress of software development. Testing a software is extremely difficult, because even a modest-sized program ( 5,000 executable statements) can contain enough executable paths (i.e., ways to get from the beginning of the program to the end), so tha

29、t the process of testing each path though the program can be prohibitively expensive.,39,Software Characteristics (5),Software does not wear out. Software normally does not lose its functionality with use. It may lose its functionality in time, however, as the user requirements change. When defects

30、are encountered, they are removed by rewriting the relevant code, not by replacing it with available code. That means that the concept of replacing the defective code by spare code is very unusual in software development. When defects are removed, there is likelihood that new defects are introduced.

31、,40,Software Characteristics (6),Hardware has physical models to use in evaluating design decisions. Software design evaluation, on the other hand, rests on judgment and intuition. There are major differences between the management of hardware and software projects. Traditional controls for hardware

32、 projects may be counterproductive in software projects. For example, reporting percent completed in terms of Lines of Code can be highly misleading.,41,Wear vs. Deterioration,bugs,42,Software Applications,system software (OS) application software (MS) engineering/scientific software (Matlab, Maple)

33、 embedded software (iPod,cell) product-line software (Intel, Simens) WebApps (Web applications) ,43,4 big challenges facing software engineering,Time: Why does it take so long to get software finished? Measurement: Why do we have difficulty in measuring progress as software is being developed? Cost:

34、 Why are development costs so high? Errors/Quality: Why cant we find all the errors before we give the software to customers ?,44,SoftwareNew Categories,system software (OS) application software (MS) engineering/scientific software (Matlab, Maple) embedded software (iPod,cell) product-line software

35、(Intel, Simens) WebApps (Web applications) Ubiquitous computingwireless networks Netsourcingthe Web as a computing engine Open source”free” source code open to the computing community (a blessing, but also a potential curse!) Grid/Cloud computing,45,Why must it change?,Computing: software must be ad

36、apted to meet the needs of new computing environments or technology. Business: software must be enhanced to implement new business requirements. Embedded: software must be extended to make it interoperable with other more modern systems or databases. Architecture: software must be re-architected to

37、make it viable within a network environment.,All Kinds of Demands:,Why do we need software engineering?,Software crisis “Software crisis was a term used in the early days of computing science. The term was used to describe the impact of rapid increases in computer power and the complexity of the pro

38、blems which could be tackled. In essence, it refers to the difficulty of writing correct, understandable, and verifiable computer programs. The roots of the software crisis are complexity, expectations, and change.,46,What is software engineering?,Engineeringthe art or science of making practical ap

39、plication of the knowledge of pure science (as phy. and chem. Construction etc.) the action, work, or profession of an engineer Software development is a social learning process because knowledge is initially dispersed, latent and incomplete. The process provides interaction (dialogue) among users ,

40、 designers, and evolving tools, It is an iterative process, with each new round of the dialogue eliciting more useful knowledge from the people involved.,47,Seven Principles for Software Engineering,Manage using a phased life-cycle plan Perform continuous validation Maintain disciplined product cont

41、rol Use modern programming/engineering practices Maintain clear accountability for results Use better and fewer people Maintain a commitment to improve the process,48,Relationship to other disciplines,Software and software engineering have relationship to many other disciplines, including: Computer

42、Engineering Computer Science Management Mathematics Project Management Quality Management Software Ergonomics Systems Engineering,49,50,Software Myths/Misunderstanding,Old attitudes and habits are difficult to modify From Management, Customer and Practitioner,51,Management Myths (1),Myth1: We alread

43、y have a book thats full of standards and procedures for building software, wont that provide my people with everything they need to know?Reality1: It takes much more than the latest model mainframe, workstation, or PC to do high-quality software development.M2: If we get behind schedule, we can add

44、 more programmers and catch upR2: Software development is not a mechanistic process like manufacturing. “adding people to a late software project makes it later.“,52,Management Myths (2),M3: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.R

45、3: If an organization does not understand how to manage and control software projects internally, it will invariably struggle when it outsources software projects.,53,Customer myths,lead to false expectations (by the customer) and ultimately, dissatisfaction with the developer. M1: A general stateme

46、nt of objectives is sufficient to begin writing programswe can fill in the details later. R1: A poor up-front definition is the major cause of failed software efforts. M2: Project requirements continually change, but change can be easily accommodated because software is flexible. R2:Reality: It is t

47、rue that software requirements change, but the impact of change varies with the time at which it is introduced.,54,The impact of change,55,Practitioners myths (1),Myths that are still believed by software practitioners havebeen fostered by 50 years of programming culture. During the early days of so

48、ftware, programming was viewed as an art form.M1: Once we write the program and get it to work, our job is done.R1: Someone once said that “the sooner you begin writing code, the longer itll take you to get done.“ Industry data indicate that between 60 and 80 percent of all effort expended on softwa

49、re will be expended after it is delivered to the customer for the first time.,56,Practitioners myths (2),M2: Until I get the program “running“ I have no way of assessing its quality.R2: One of the most effective software quality assurance mechanisms can be applied from the inception of a projectthe

50、formal technical review.,57,Practitioners myths (3),M3: The only deliverable work product for a successful project is the working program. R3:A working program is only one part of a software configuration that includes many elements. M4: Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down. R4:Software engineering is not about creating documents. It is about creating quality. Better quality leads to reduced rework. And reduced rework results in faster delivery times.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报