软件工程 实践者的研究方法 第五章答案

软件工程 专栏收录该内容
39 篇文章 1 订阅

Problem:
Reread the “Manifesto for Agile Software Development” at the beginning of this chapter. Can you think of a situation in which one or more of the four “values” could get a software team into trouble?

Answer:
Manifesto for agile software development:

Better ways of developing software are as follows:

1. Individuals and Interactions over Processes and Tools:

It is the first value proposition of the manifesto. In this tool should be used for capturing requirements, version control, project planning, editing, file transfer, etc. Here the process can get in the way, and it is more important to get to the point which is using the interaction over process and will get you much better results.

2. Working Software over Comprehensive Documentation:

This tells about the importance of documentation, which is often lacking in projects and can cause problems.

It is not important, but, when it comes down to a choice between finishing a project with a working outcome. It is really important to the client.

3. Customer Collaboration over Contract Negotiation:

The purpose of contract negotiation is to ensure that responsibilities and deliverables are clear, as well as providing a framework for resolving issues should they arise. Relationship with the client are able to resolve things amicably, a contract is more like an insurance policy should things go wrong.

4. Responding to Change over Following a Plan:

The purpose of the plan is to know what you are deviating from when you have to make a change. Change is inevitable, there's no point in fighting it.

Creating the initial project plan is an important process to capture all the tasks required, the ideal order in which they should be done, and most importantly, to identify dependencies. However, the initial project plan and how things happen in reality are often quite differentDefinitely one or more of the four “Values” could get a software team into trouble.

Example:

The customer, programmer interaction may not go well, the user may not specify all the requirements that the software must under go. There may be a misunderstanding in the interaction between customer and the developer. In such situations the software teams automatically creeps into troubles.

So, from the fourth value, the software team will get into trouble.

Agile process models have been designed to address the following issues:

1. Importance of self-organizing team that has control over work they perform.

2. Communication and collaboration between team members, practitioners and their customers.

3. An emphasis on rapid delivery of software that satisfies the customer.

Problem:
Describe agility (for software projects) in your own words.

Answer:
The word agility means “To do something very quickly”. Thus, agility in terms of software development is to develop a software which meets all the requirement specified by the customer, and always ready to accept the changes required by the customer even in later phases.The goals of agility are explained below:

• The development process should always be ready to accept new changes needed in the development.

• Agility means to deliver the working software as soon as possible.

• Agile means to keep the software simple, the part only that is required.

• The agile software development is always growth oriented. That means, it should adapt to new things, but incrementally. Adaptation to new changes should always move the progress in forward direction.

• Agility in the software development keeps the change cost low as it is an incremental process. thus, changes can be easily made in controlled environment.

Problem:
Why does an iterative process make it easier to manage change? Is every agile process discussed in this chapter iterative? Is it possible to complete a project in just one iteration and still be agile? Explain your answers.

Answer:
The software team manages change by focusing on a defined increment and postponing any changes until the next increment. All agile process models are iterative/incremental.

An iterative process make it easier to manage changes. Since each iteration is a mini – project, the project team addresses, to some extent, all the risks associated with the project as a whole each time it builds an increment of the system. As risks become greater, as delays occur, and as the environment become more unstable. The team is able to make necessary adjustments on a relatively small scale and propagate those adjustments across the entire project. An iterative process has greater flexibility to change the plan. Hence it is easier to manage the changes.Almost all the agile process models are iterative.

Yes, it is possible to complete a project in just one iterative and still be agile. Because if the time is the major constraints and all the requirements are well known at the beginning of the project. If there are well suited design patterns are available and the principles of agile development are satisfied then it is possible to complete a project in one iteration that too with agility.

Problem:
Could each of the agile processes be described using the generic framework activities noted in Chapter 3? Build a table that maps the generic activities into the activities defined for each agile process.

Answer:
The generic process framework can be applied to each agile process described in this chapter. The table should list all agile process models across the first row and all generic framework activities

• Communication

• Planning

• Modeling

• Construction

• Deployment.Mapping from activates in agile process to generic activities.

• Extreme programming (XP)

o Planning – communication, planning

o Design – modeling

o Coding – modeling, construction

o Test – deployment.

• Adaptive software development (ASD)

o Speculation – communication, planning

o Collaboration – modeling, construction

o Leaning – Deployment

• Dynamic systems development method (DSDM)

o Feasibility, business study – communication, planning

o Functional model, design – Modeling, constructs

o Implementation – construction, deployment.

Problem:
Try to come up with one more “agility principle” that would help a software engineering team become even more maneuverable.

Answer:
One more additional agility principle –

Less is more:

Always model for a purpose, either to communicate, or to understand. Don’t create models for other people unless you know how and by whom they will be used.Travel light and update only when it hurts. Everything that is created, model, document, code, test etc has a cost. If you decide to keep it, each will need to be maintained over time increasing cost of change and what people must know and understand. The less you keep and maintain, the more agile you are.

Minimize the complexity. Simplicity reduces amount of work to do. The simplest solution is usually the best solution. More complex and detailed artifacts will be more difficult and expensive to change. Plan for change realistically, but don’t overload your models or system with features that your don’t need.

Problem:
Select one agility principle noted in Section 5.3.1 and try to determine whether each of the process models presented in this chapter exhibits the principle. [Note: We have presented an overview of these process models only, so it may not be possible to determine whether a principle has been addressed by one or more of the models, unless you do additional research (which is not required for this problem).]

Answer:
Agile processes embrace change as essential to the customer's competitive advantage. Each of the process models presented in this chapter exhibits this principle.

Selected one agility principle is: “Working software is the primary measure of progress”.

1. Extreme programming (XP):

Planning activity begins with the creation of a set of stories. A value is assigned to each story and XP team will assess each story & assign a cost. Finally the XP story will evolve as working software.2. Adaptive software development (ASD):

Effective collaboration with the customer will only occur if we throw out any “us and them” attributes. ASD teams with intent of learning & then improving its approach.3. Dynamic system development method (DSDM):

It is an incremental method. The increment may not be 100% complete but there should be some progress compared to last increments4. Scrum:

Scrums allow us to build softer software. Scrum patterns enable a software development team to work successfully in a world where elimination of uncertainty is impossible.5. Agile modeling (AM):

The problem can be partitioned effectively among the people who must solve it and quality can be assessed at every step as system is being progressed, engineered and built.

Problem:
Why do requirements change so much? After all, don’t people know what they want?

Answer:
Requirements may change for various reasons even if people know their wants. The reasons for the same can be:-

• Change in environment: Changes in legislation, organizational dynamics or competition strategy may also lead to change in requirements.

• Missed requirement: A stakeholder working with a system might realize that it's missing a feature.

• Identify a defect: A bug or defect in the system, creates new requirement.

• Actual requirement was not clearly understood: It is common for user to realize that what they asked for is different from what is required.

It is a fact that requirements change a lot in software development life cycle. Changes in requirement are hard to predict and so are the change in customer priorities.

It is often difficult for stakeholders to verbalize their software needs till they see a working prototype, and it is then only that they might realize that they have forgotten to consider some important points. This might happen because people may not know what they actually want until they see something running. This explains importance of active stakeholder participation and short iterations to a system’s success.

Very rarely, does it happen that stakeholders do not know what they want from the system. A decent requirement specification can be designed by effective collaboration between all the stakeholders, also their experience in the respective fields does make the task a little easier.

Problem:
Most agile process models recommend face-to-face communication. Yet today, members of a software team and their customers may be geographically separated from one another. Do you think this implies that geographical separation is something to avoid? Can you think of ways to overcome this problem?

Answer:
Face – to – force communication is a better way to collect the requirements from a customer, but face – to – face communication leading to many interpersonal difficulties and miscommunications in today’s workplace. Major problem in today’s software development is that the members of software team and their customers may be geographically separated from one other. The ways to overcome this problem is to use

E – mails, text messaging, PDA’s, cell phones, video conferencing, black berries, blueberries, raspberries, and more.

It’s unbelievable how dependent we’ve become as a society on electronic communication devices!

Problem:
Write an XP user story that describes the “favorite places” or “favorites” feature available on most Web browsers.

Answer:
Internet bookmarks are stored webpage locations that can be retrieved. The main purpose is to easily catalog and access web pages that a user has visited and choose to save. Saved links are called “favorites”, and by virtue of the browser’s large market share, the term favorite has been synonymous with bookmark since the early days of widely – distributed browsers. Bookmark are normally visible in a browser menu and stored on the user’s computer and commonly a metaphor is be used for organization.Book marks are a fundamental feature of web browsers, but some users have expressed frustration with bookmark collections that become disorganized and have looked for other tools to help manage their links. There tools include browser synchronizers and desktop applications.

Problem:
What is a spike solution in XP?

Answer:
Extreme Programming (XP):

• Extreme programming (XP) is a popular agile software development methodology used to implement the software project.

• XP uses an object-oriented approach as its preferred development paradigm.

• XP encompasses a set of rules and practices that occur within the context of framework activities.Spike solution:

• It is a small technique to investigate the solution to a problem.

• To figure out tough problems or any other design problems, create a spike solution to overcome it.

• When we encounter a tough problem that lack’s an immediately apparent solution, create a spike solution.

• The goal of a spike solution is to keep the solution simple and away from the risk factors.

• That is where you try out different approaches in the code to make the correct solution more apparent.

• This happens all the time in independent development, and it may not require the level of formally those agile programming calls for.Spike solution in XP:

A spike solution in XP is a prototype that is intended to throw away.

• The prototype is implemented and evaluated. The intent is to lower risk when true implementation.

• Starts and to validate the original estimates for the story containing the design pattern.

• To figure out the tough problems or any other design problems, create a spike solution to overcome it.

• Also, the spike solution reduces the potential risk of the problem.

• The spike approach deals to an “end to end” approach to the problem.

• In XP, the spike solution implemented to keep away the risk and to prepare the quality solutions to the tough problems when those agile programming calls for.

Problem:
Describe the XP concepts of refactoring and pair programming in your own words.

Answer:
Refactoring:

It is a construction technique. Extreme programming (XP) encourages refactoring. Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves the internal structure.. it is a disciplined way to clean up the code that minimizes the chance of introducing bugs. The intent of refactoring is to control the modifications by suggesting small design changes that can radically improve the design. The design occurs both before and after coding commences. Refactoring means that design occurs continuously as system is constructed.Pair programming:

Pair programming recommends that two people or teams work together at one computer work station to create code for a story. This provides a mechanism for real – time problem solving and real – time quality assurance. In practice, each person takes on slightly different role. For example, one might think about coding details of particular portion of design while the other ensures that coding standards are being followed and code that is generated will fit to requirement.

Problem:
Using the process pattern template presented in Chapter 3, develop a process pattern for any one of the Scrum patterns presented in Section 5.5.1.

Answer:
Process pattern template for scrum pattern “communicate Early”

Problem: What is the goal of a project and who are members of a team?

Context: Use of scrum in a distributed project (faster, cheaper and quality projects)Solution: Arrange kick – off meeting for all relevant members present briefly scrum methodology.

Describe the goal and contents of the project.

Describe a release plan with some sprints

Introduce briefly use of an ALM tool everybody presents his / her responsibilities & hobbies.Consequences: common goal is known by every relevant member a common process and

tools for every site can be established by scrum and ALM tools efficient

communication channels can be created between team members when

they learn to know each other better.

Problem:
Visit the Official Agile Modeling site and make a complete list of all core and supplementary AM principles.

Answer:
Core principles of agile modeling:

• Assume simplicity

• Embrace change

• Enabling the next effort is your secondary goal

• Incremental change

• Maximize stakeholder ROI

• Model with a purpose

• Multiple models

• Quality work

• Rapid feedback

• Working software is your primary goal

• Travel lightSupplementary principles of agile modeling:

• Content is more important than representation

• Open and honest communicationAssume simplicity:

• Develop the model as simple as possible. Avoid including additional features that are not necessary.

Embrace change:

• Requirements of the user changes from time to time. Therefore, the agile model should be willing to accept the change.

Enabling the next effort is your secondary goal:

• The primary goal of software development is develop software that is working efficiently and meets all the requirements of the customer.

• Sometimes even though working software is delivered, it is still considered as a failure.

• The secondary goal is the next effort to develop a system with next major release.

Incremental change:

• A model can be developed with initial requirements and then can be modified by adding features one by one.

• It is not mandatory that the model must be perfect the first time it is built.Maximize stakeholder ROI:

• Consider the resources that are provided by the stakeholders while designing a model so that stakeholder ROI is maximized.

Model with a purpose:

• A model should be developed so that it will give a better understanding of the product to be designed and help in reducing the complexity of the product to be designed.

Multiple models:

• If the software requires multiple models, then develop models that are necessary for the software.

• Not all products require multiple models.

Quality work:

• Develop the model that is of good quality.Rapid feedback:

• Rapid feedback can be obtained when working closely with customers.

• It helps in understanding the requirements of the customer.

• The customer can give a feedback after the user interface has been developed.

Working software is your primary goal:

• The primary goal of software development is develop software that is working efficiently and meets all the requirements of the customer.

Travel light:

• Develop the model as simple as possible so that when a change has to be made, it will be done easily.

• If multiple models are maintained, then a change has to be reflected in all the models. So maintain simple models that are necessary.Content is more important than representation:

• The type of model or the representation of the model constructed is not important.

• The model should be developed so that it serves its purpose.

Open and honest communication:

• People should be open and honest to voice up their ideas or opinions or suggestions.

Problem:
The tool set proposed in Section 5.6 supports many of the “soft” aspects of agile methods. Since communication is so important, recommend an actual tool set that might be used to enhance communication among stakeholders on an agile team.

Answer:
 


 

Solutions: CHAPTER 5: AGILE DEVELOPMENT

 

 

5.1)  One situation in which one or more of the four “values” could get a software team into trouble would be Responding to change over following a plan, In many situations, we no longer are able to define requirements fully before the project begins. Software engineers must be agile enough to respond to a fluid business environment or else they might land up in trouble.

 

5.2) Agility can be applied to any software process. However, to accomplish this, it is essential that the process be designed in a way that allows the project team to adapt tasks and to streamline them, conduct planning in a way that understands the fluidity of an agile development approach, eliminate all but the most essential work products and keep them lean, and emphasize an incremental delivery strategy that gets working software to the customer as rapidly as feasible for the product type and operational environment.

 

5.3) Agile process models deliver software increments followed by customer feedback and revision. Because the increments are small and the customer feedback is prompt, it is relatively easy to incorporate the changes in the next software increment.  For example, ASD uses an iterative process that incorporate adaptive cycle planning, relatively rigorous requirement gathering methods, and an iterative development cycle that incorporates customer focus groups and formal technical reviews as real-time feedback mechanisms. The Dynamic Systems Development Method (DSDM) defines three different iterative cycles—functional model iteration, design and build iteration, and implementation— preceded by two additional life cycle activities—feasibility study and business study.

 

5.4) Answers will vary

 

5.5) One more “agility principle” that would help a software engineering team become even more maneuverable would be, “A team should know whose skills suit a particular project, and get these people on their project, for software development to become more effective”, and ”Communication is the key, the consumer and developer should constantly be communicating even if they are geographically separated, they can web talk”.

 

5.6) An agility principle noted in Section 5.3.1 is “Welcome changing requirements, even late in development”. Agile processes harness change to the customer's competitive advantage, each of the process models presented in this chapter exhibits this principle.

 

5.7) Requirements change so much, that it is difficult to predict in advance which  software requirements will persist and which will change. It is equally difficult to predict how customer priorities will change as the project proceeds. It is often difficult for people to verbalize their software needs until they see a working prototype and realize that they had forgotten to consider something important.

 

5.8) Most agile process models recommend face-to-face communication. Yet today, members of a software team and their customers may be geographically separated from one another in that case Communication is the key, the consumer and developer should constantly be communicating even if they are geographically separated, they can webtalk or talk over the phone every now and then or write emails, use chatting as the, means or a medium of conference call communication where 2 and more people can talk to each other at the same time.

 

5.9) Answers will vary

 

5.10) If a difficult design problem is encountered as part of the design of a story, XP recommends the immediate creation of a operational prototype of that portion of the design, called a spike solution, the design prototype is implemented and evaluated. The intent is to lower risk when true implementation starts and to validate the original estimates for the story containing the design problem.

 

5.11) XP encourages refactoring—a construction technique that is also a design technique. Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves the internal structure. A central notion in XP is that design occurs both before and after coding commences. Refactoring means that design occurs continuously as the system is constructed a key concept during the coding activity is pair programming. XP recommends that two people work together at one computer workstation to create code for a story. This provides a mechanism for real-time problem solving (two heads are often better than one) and real-time quality assurance.

 

5.12) The DSDM approach for each iteration follows the 80 percent rule. That is, only enough work is required for each increment to facilitate movement to the next increment. The ASD time-boxing approach establishes distinct schedule boundaries for the delivery of components of an increment and suggest that work continues only until the time-box boundary is reached. The remaining detail can be completed later when more business requirements are known or changes have been requested and accommodated.

 

5.13) Answers will vary

5.14)  One web site to examine for AM principles might be http://www.agilealliance.org/home

 

5.15)  Collaborative software engineering tools like Enterprise Architect paired with Microsoft Visual Studio might be examples of real tools that support (along with version control, bug tracking software, and instant messaging)

  • 0
    点赞
  • 2
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
小提示: 本资料仅供个人学习参考,请勿用于商业用途,如有能力请尽量购买正版图书,也是对作者支持。 需要新版本(第六版)请到下面地址下载(0资源分) http://download.csdn.net/source/3409009 自近30年前第1版问世以来,在软件工程界始终发挥着巨大而深远影响,其权威性是公认、无可置疑。 第1章 软件和软件工程 1 1.1 软件本质 2 1.1.1 定义软件 3 1.1.2 软件应用领域 5 1.1.3 遗留软件 6 1.2 webapp特性 7 1.3 软件工程 8 1.4 软件过程 9 1.5 软件工程实践 11 1.5.1 实践精髓 11 1.5.2 一般原则 12 1.6 软件神话 14 1.7 这一切是如何开始 15 1.8 小结 16 习题与思考题 17 .推荐读物与阅读信息 17 第一部分 软件过程 第2章 过程模型 20 2.1 通用过程模型 21 2.1.1 定义框架活动 22 2.1.2 明确任务集 23 2.1.3 过程模式 23 2.2 过程评估与改进 25 2.3 惯用过程模型 26 2.3.1 瀑布模型 26 2.3.2 增量过程模型 28 2.3.3 演化过程模型 29 2.3.4 协同模型 33 2.3.5 演化模型最终评述 34 2.4 专用过程模型 34 2.4.1 基于构件开发 35 2.4.2 形式化方法模型 35 2.4.3 面向方面软件开发 35 2.5 统一过程 37 2.5.1 简史 37 2.5.2 统一过程阶段 37 2.6 个人过程模型和团队过程模型 38 2.6.1 个人软件过程 39 2.6.2 团队软件过程 39 2.7 过程技术 40 2.8 产品与过程 41 2.9 小结 42 习题与思考题 42 推荐读物与阅读信息 43 第3章 敏捷开发 45 3.1 什么是敏捷 46 3.2 敏捷及变更成本费用 47 3.3 敏捷过程是什么 47 3.3.1 敏捷原则 48 3.3.2 敏捷开发战略 48 3.3.3 人因素 49 3.4 极限编程 50 3.4.1 极限编程权值 50 3.4.2 极限编程过程 51 3.4.3 工业极限编程 53 3.4.4 关于xp争论 54 3.5 其他敏捷过程模型 55 3.5.1 自适应软件开发 56 3.5.2 scrum 57 3.5.3 动态系统开发方法 58 3.5.4 crystal 59 3.5.5 特征驱动开发 59 3.5.6 精益软件开发 60 3.5.7 敏捷建模 60 3.5.8 敏捷统一过程 61 3.6 敏捷过程工具集 62 3.7 小结 63 习题与思考题 63 推荐读物与阅读信息 64 第二部分 建模 第4章 指导实践原则 68 4.1 软件工程知识 69 4.2 核心原则 69 4.2.1 指导过程原则 69 4.2.2 指导实践原则 70 4.3 指导每个框架活动原则 71 4.3.1 沟通原则 71 4.3.2 策划原则 73 4.3.3 建模原则 74 4.3.4 构造原则 77 4.3.5 部署原则 79 4.4 小结 80 习题与思考题 81 推荐读物与阅读信息 81 第5章 理解需求 83 5.1 需求工程 84 5.2 建立根基 88 5.2.1 确认利益相关者 88 5.2.2 识别多重观点 88 5.2.3 协同合作 88 5.2.4 首次提问 89 5.3 导出需求 89 5.3.1 协作收集需求 90 5.3.2 质量功能部署 92 5.3.3 用户场景 92 5.3.4 导出工作产品 93 5.4 开发用例 94 5.5 构建需求模型 97 5.5.1 需求模型元素 98 5.5.2 分析模式 100 5.6 协商需求 100 5.7 确认需求 101 5.8 小结 102 习题与思考题 102 推荐读物与阅读信息 103 第6章 需求建模:场景、信息 与类分析 105 6.1 需求分析 106 6.1.1 总体目标和原理 106 6.1.2 分析经验原则 107 6.1.3 域分析 107 6.1.4 需求建模方法 109 6.2 基于场景建模 110 6.2.1 新建初始用例 110 6.2.2 细化初始用例 112 6.2.3 编写正规用例 113 6.3 补充用例uml模型 115 6.3.1 开发活动图 115 6.3.2 泳道图 115 6.4 数据建模概念 116 6.4.1 数据对象 117 6.4.2 数据属性 117 6.4.3 关系 118 6.5 基于类建模 119 6.5.1 识别分析类 119 6.5.2 描述属性 121 6.5.3 定义操作 122 6.5.4 类-职责-协作者建模 124 6.5.5 关联和依赖 128 6.5.6 分析包 129 6.6 小结 130 习题与思考题 130 推荐读物与阅读信息 131 第7章 需求建模:流程、行为、模式和web应用 132 7.1 需求建模策略 132 7.2 面向数建模 133 7.2.1 创建数据流模型 133 7.2.2 创建控制流模型 135 7.2.3 控制规格说明 135 7.2.4 处理规格说明 137 7.3 生成行为模型 138 7.3.1 识别用例事件 139 7.3.2 状态表现 139 7.4 需求建模模式 141 7.4.1 发现分析模式 142 7.4.2 需求模式举例:执行器-传感器 142 7.5 web应用系统需求建模 145 7.5.1 如何分析 145 7.5.2 需求建模输入 146 7.5.3 需求建模输出 146 7.5.4 web应用系统内容建模 147 7.5.5 web应用系统交互模型 148 7.5.6 web应用系统功能模型 148 7.5.7 web应用系统配置模型 149 7.5.8 导航建模 150 7.6 小结 150 习题与思考题 151 推荐读物与阅读信息 151 第8章 设计概念 152 8.1 软件工程设计 153 8.2 设计过程 155 8.2.1 软件质量指导原则和属性 155 8.2.2 软件设计演化 156 8.3 设计概念 157 8.3.1 抽象 158 8.3.2 体系结构 158 8.3.3 模式 159 8.3.4 关注点分离 159 8.3.5 模块化 159 8.3.6 信息隐蔽 160 8.3.7 功能独立 160 8.3.8 求精 161 8.3.9 方面 161 8.3.10 重构 162 8.3.11 面向对象设计概念 163 8.3.12 设计类 163 8.4 设计模型 165 8.4.1 数据设计元素 166 8.4.2 体系结构设计元素 166 8.4.3 接口设计元素 166 8.4.4 构件级设计元素 168 8.4.5 部署级设计元素 168 8.5 小结 169 习题与思考题 169 推荐读物与阅读信息 170 第9章 体系结构设计 172 9.1 软件体系结构 172 9.1.1 什么是体系结构 173 9.1.2 体系结构为什么重要 174 9.1.3 体系结构描述 174 9.1.4 体系结构决策 175 9.2 体系结构类型 175 9.3 体系结构风格 177 9.3.1 体系结构风格简单分类 178 9.3.2 体系结构模式 180 9.3.3 组织和求精 181 9.4 体系结构设计 181 9.4.1 系统环境表示 181 9.4.2 定义原型 182 9.4.3 将体系结构精化为构件 183 9.4.4 描述系统实例 184 9.5 评估可选体系结构设计 185 9.5.1 体系结构权衡分析方法 185 9.5.2 体系结构复杂性 187 9.5.3 体系结构描述语言 187 9.6 使用数据流进行体系结构映射 188 9.6.1 变换映射 188 9.6.2 精化体系结构设计 193 9.7 小结 194 习题与思考题 194 推荐读物与阅读信息 195 第10章 构件级设计 196 10.1 什么是构件 197 10.1.1 面向对象观点 197 10.1.2 传统观点 198 10.1.3 过程相关观点 199 10.2 设计基于类构件 200 10.2.1 基本设计原则 200 10.2.2 构件级设计指导方针 203 10.2.3 内聚性 203 10.2.4 耦合性 205 10.3 实施构件级设计 206 10.4 webapp构件级设计 210 10.4.1 构件级内容设计 210 10.4.2 构件级功能设计 211 10.5 设计传统构件 211 10.5.1 图形化设计表示 211 10.5.2 表格式设计表示 212 10.5.3 程序设计语言 213 10.6 基于构件开发 214 10.6.1 领域工程 215 10.6.2 构件合格性检验、适应性修改与组合 215 10.6.3 复用分析与设计 217 10.6.4 构件分类与检索 217 10.7 小结 218 习题与思考题 219 推荐读物与阅读信息 220 第11章 用户界面设计 221 11.1 黄金规则 222 11.1.1 用户操纵控制 222 11.1.2 减轻用户记忆负担 223 11.1.3 保持界面一致 224 11.2 用户界面分析与设计 225 11.2.1 用户界面分析和设计模型 225 11.2.2 过程 226 11.3 界面分析 227 11.3.1 用户分析 227 11.3.2 任务分析和建模 228 11.3.3 显示内容分析 232 11.3.4 工作环境分析 232 11.4 界面设计步骤 233 11.4.1 应用界面设计步骤 233 11.4.2 用户界面设计模式 235 11.4.3 设计问题 235 11.5 webapp界面设计 237 11.5.1 界面设计原则与指导方针 238 11.5.2 webapp界面设计工作流 241 11.6 设计评估 242 11.7 小结 243 习题与思考题 244 推荐读物与阅读信息 245 第12章 基于模式设计 246 12.1 设计模式 247 12.1.1 模式种类 248 12.1.2 框架 249 12.1.3 描述模式 250 12.1.4 模式语言和存储库 251 12.2 基于模式软件设计 251 12.2.1 不同环境下基于模式 设计 252 12.2.2 在模式中思考 252 12.2.3 设计任务 253 12.2.4 建立模式组织表 254 12.2.5 常见设计错误 255 12.3 体系结构模式 255 12.4 构件级设计模式 257 12.5 用户界面设计模式 259 12.6 webapp设计模式 261 12.6.1 设计焦点 261 12.6.2 设计粒度 261 12.7 小结 262 习题与思考题 263 推荐读物与阅读信息 263 第13章 webapp设计 265 13.1 webapp设计质量 266 13.2 设计目标 268 13.3 webapp设计金字塔 269 13.4 webapp界面设计 269 13.5 美学设计 270 13.5.1 布局问题 270 13.5.2 美术设计问题 271 13.6 内容设计 271 13.6.1 内容对象 271 13.6.2 内容设计问题 272 13.7 体系结构设计 272 13.7.1 内容体系结构 273 13.7.2 webapp体系结构 274 13.8 导航设计 275 13.8.1 导航语义 275 13.8.2 导航语法 276 13.9 构件级设计 277 13.10 面向对象超媒体设计方法 277 13.10.1 oohdm概念设计 278 13.10.2 oohdm导航设计 279 13.10.3 抽象界面设计与实现 279 13.11 小结 279 习题与思考题 280 推荐读物与阅读信息 280 第三部分 质量管理 第14章 质量概念 284 14.1 什么是质量 285 14.2 软件质量 285 14.2.1 garvin质量维度 286 14.2.2 mccall质量因素 287 14.2.3 iso 9126质量因素 287 14.2.4 定向质量因素 288 14.2.5 过渡到量化观点 289 14.3 软件质量困境 289 14.3.1 “足够好”软件 289 14.3.2 质量成本 290 14.3.3 风险 291 14.3.4 疏忽和责任 292 14.3.5 质量和安全 292 14.3.6 管理活动影响 292 14.4 实现软件质量 293 14.4.1 软件工程方法 293 14.4.2 项目管理技术 293 14.4.3 质量控制 294 14.4.4 质量保证 294 14.5 小结 294 习题与思考题 294 推荐读物与阅读信息 295 第15章 评审技术 296 15.1 软件缺陷对成本影响 297 15.2 缺陷放大和消除 297 15.3 评审度量及其应用 299 15.3.1 分析度量数据 299 15.3.2 评审成本效益 300 15.4 评审:正式程度 301 15.5 非正式评审 301 15.6 正式技术评审 303 15.6.1 评审会议 303 15.6.2 评审报告和记录保存 304 15.6.3 评审指导原则 304 15.6.4 样本驱动评审 305 15.7 小结 306 习题与思考题 306 推荐读物与阅读信息 307 第16章 软件质量保证 308 16.1 背景问题 309 16.2 软件质量保证要素 309 16.3 软件质量保证任务、目标和度量 311 16.3.1 软件质量保证任务 311 16.3.2 目标、属性和度量 311 16.4 软件质量保证形式化方法 312 16.5 统计软件质量保证 313 16.5.1 一个普通例子 313 16.5.2 软件工程六西格玛 314 16.6 软件可靠性 314 16.6.1 可靠性和可用性测量 315 16.6.2 软件安全 316 16.7 iso 9000质量标准 316 16.8 sqa计划 317 16.9 小结 318 习题与思考题 318 推荐读物与阅读信息 319 第17章 软件测试策略 320 17.1 软件测试策略性方法 321 17.1.1 验证与确认 321 17.1.2 软件测试组织 322 17.1.3 软件测试策略—宏观 322 17.1.4 测试完成标准 324 17.2 策略问题 324 17.3 传统软件测试策略 325 17.3.1 单元测试 325 17.3.2 集成测试 327 17.4 面向对象软件测试策略 331 17.4.1 面向对象环境中单元测试 331 17.4.2 面向对象环境中集成测试 332 17.5 webapp测试策略 332 17.6 确认测试 333 17.6.1 确认测试准则 333 17.6.2 配置评审 333 17.6.3 a测试与b测试 333 17.7 系统测试 334 17.7.1 恢复测试 335 17.7.2 安全测试 335 17.7.3 压力测试 335 17.7.4 性能测试 336 17.7.5 部署测试 336 17.8 调试技巧 337 17.8.1 调试过程 337 17.8.2 心理因素 338 17.8.3 调试策略 338 17.8.4 纠正错误 340 17.9 小结 340 习题与思考题 340 推荐读物与阅读信息 341 第18章 测试传统应用系统 343 18.1 软件测试基础 344 18.2 测试内部视角和外部视角 345 18.3 白盒测试 346 18.4 基本路径测试 346 18.4.1 流图表示 346 18.4.2 独立程序路径 347 18.4.3 导出测试用例 349 18.4.4 图矩阵 350 18.5 控制结构测试 351 18.5.1 条件测试 351 18.5.2 数据流测试 351 18.5.3 循环测试 352 18.6 黑盒测试 353 18.6.1 基于图测试方法 353 18.6.2 等价类划分 354 18.6.3 边界值分析 355 18.6.4 正交数组测试 355 18.7 基于模型测试 357 18.8 针对特定环境、体系结构和应用系统测试 358 18.8.1 图形用户界面测试 358 18.8.2 客户/服务器体系结构测试 358 18.8.3 文档测试和帮助设施测试 359 18.8.4 实时系统测试 360 18.9 软件测试模式 361 18.10 小结 362 习题与思考题 362 推荐读物与阅读信息 363 第19章 测试面向对象应用系统 364 19.1 扩展测试视野 364 19.2 测试ooa和ood模型 365 19.2.1 ooa和ood模型正确性 365 19.2.2 面向对象模型一致性 366 19.3 面向对象测试策略 367 19.3.1 面向对象环境中单元测试 367 19.3.2 面向对象环境中集成测试 368 19.3.3 面向对象环境中确认测试 368 19.4 面向对象测试方法 368 19.4.1 面向对象概念测试用例设计含义 369 19.4.2 传统测试用例设计方法可应用性 369 19.4.3 基于故障测试 369 19.4.4 测试用例与类层次 370 19.4.5 基于场景测试设计 370 19.4.6 表层结构和深层结构测试 371 19.5 类级可应用测试方法 372 19.5.1 面向对象类随机测试 372 19.5.2 类级划分测试 373 19.6 类间测试用例设计 373 19.6.1 多类测试 374 19.6.2 从行为模型导出测试 374 19.7 小结 375 习题与思考题 376 推荐读物与阅读信息 376 第20章 测试web应用系统 377 20.1 webapp测试概念 377 20.1.1 质量维度 378 20.1.2 webapp环境中错误 378 20.1.3 测试策略 379 20.1.4 测试策划 379 20.2 测试过程概述 380 20.3 内容测试 380 20.3.1 内容测试目标 381 20.3.2 数据库测试 381 20.4 用户界面测试 383 20.4.1 界面测试策略 383 20.4.2 测试界面机制 383 20.4.3 测试界面语义 385 20.4.4 可用性测试 385 20.4.5 兼容性测试 386 20.5 构件级测试 387 20.6 导航测试 388 20.6.1 测试导航语法 388 20.6.2 测试导航语义 389 20.7 配置测试 390 20.7.1 服务器端问题 390 20.7.2 客户端问题 390 20.8 安全性测试 391 20.9 性能测试 392 20.9.1 性能测试目标 392 20.9.2 负载测试 393 20.9.3 压力测试 393 20.10 小结 395 习题与思考题 396 推荐读物与阅读信息 396 第21章 形式化建模与验证 398 21.1 净室策略 399 21.2 功能规格说明 400 21.2.1 黑盒规格说明 401 21.2.2 状态盒规格说明 401 21.2.3 清晰盒规格说明 402 21.3 净室设计 402 21.3.1 设计求精 402 21.3.2 设计验证 403 21.4 净室测试 404 21.4.1 统计使用测试 404 21.4.2 认证 405 21.5 形式化方法概念 406 21.6 应用数学表示法描述形式化规格说明 408 21.7 形式化规格说明语言 409 21.7.1 对象约束语言 409 21.7.2 z规格说明语言 412 21.8 小结 414 习题与思考题 415 推荐读物与阅读信息 415 第22章 软件配置管理 417 22.1 软件配置管理概述 418 22.1.1 scm场景 418 22.1.2 配置管理系统元素 419 22.1.3 基线 419 22.1.4 软件配置项 420 22.2 scm中心存储库 421 22.2.1 中心存储库作用 421 22.2.2 一般特征和内容 421 22.2.3 scm特征 422 22.3 scm过程 423 22.3.1 软件配置中对象标识 424 22.3.2 版本控制 424 22.3.3 变更控制 425 22.3.4 配置审核 428 22.3.5 状态报告 428 22.4 webapp配置管理 429 22.4.1 webapp配置管理主要问题 429 22.4.2 webapp配置对象 430 22.4.3 内容管理 430 22.4.4 变更管理 432 22.4.5 版本控制 434 22.4.6 审核和报告 435 22.5 小结 436 习题与思考题 436 推荐读物与阅读信息 437 第23章 产品度量 438 23.1 产品度量框架 439 23.1.1 测度、度量和指标 439 23.1.2 产品度量挑战 439 23.1.3 测量原则 440 23.1.4 面向目标软件测量 440 23.1.5 有效软件度量属性 441 23.2 需求模型度量 442 23.2.1 基于功能度量 443 23.2.2 规格说明质量度量 445 23.3 设计模型度量 446 23.3.1 体系结构设计度量 446 23.3.2 面向对象设计度量 447 23.3.3 面向类度量—ck度量集 448 23.3.4 面向类度量—mood度量集 450 23.3.5 lorenz与kidd提出面向对象度量 451 23.3.6 构件级设计度量 451 23.3.7 面向操作度量 453 23.3.8 用户界面设计度量 453 23.4 webapp设计度量 453 23.5 源代码度量 455 23.6 测试度量 456 23.6.1 用于测试halstead度量 456 23.6.2 面向对象测试度量 457 23.7 维护度量 457 23.8 小结 458 习题与思考题 459 推荐读物与阅读信息 459 第四部分 软件项目管理 第24章 项目管理概念 462 24.1 管理涉及范围 463 24.1.1 人员 463 24.1.2 产品 463 24.1.3 过程 463 24.1.4 项目 464 24.2 人员 464 24.2.1 利益相关者 464 24.2.2 团队负责人 464 24.2.3 软件团队 465 24.2.4 敏捷团队 467 24.2.5 协调与沟通问题 468 24.3 产品 469 24.3.1 软件范围 469 24.3.2 问题分解 469 24.4 过程 470 24.4.1 合并产品和过程 470 24.4.2 过程分解 470 24.5 项目 471 24.6 w5hh原则 472 24.7 关键实践 473 24.8 小结 474 习题与思考题 474 推荐读物与阅读信息 474 第25章 过程度量和项目度量 477 25.1 过程领域和项目领域中度量 478 25.1.1 过程度量和软件过程改进 478 25.1.2 项目度量 479 25.2 软件测量 480 25.2.1 面向规模度量 481 25.2.2 面向功能度量 482 25.2.3 调和代码行度量和功能点度量 482 25.2.4 面向对象度量 484 25.2.5 面向用例度量 485 25.2.6 web应用项目度量 485 25.3 软件质量度量 486 25.3.1 测量质量 487 25.3.2 缺陷排除效率 488 25.4 在软件过程中集成度量 489 25.4.1 支持软件度量论点 489 25.4.2 建立基线 490 25.4.3 度量收集、计算和评估 490 25.5 小型组织度量 490 25.6 制定软件度量大纲 491 25.7 小结 493 习题与思考题 493 推荐读物与阅读信息 494 第26章 软件项目估算 496 26.1 对估算观察 497 26.2 项目策划过程 498 26.3 软件范围和可行性 498 26.4 资源 499 26.4.1 人力资源 499 26.4.2 可复用软件资源 500 26.4.3 环境资源 500 26.5 软件项目估算 500 26.6 分解技术 501 26.6.1 软件规模估算 501 26.6.2 基于问题估算 502 26.6.3 基于loc估算实例 503 26.6.4 基于fp估算实例 505 26.6.5 基于过程估算 505 26.6.6 基于过程估算实例 506 26.6.7 基于用例估算 507 26.6.8 基于用例估算实例 508 26.6.9 协调不同估算方法 508 26.7 经验估算模型 509 26.7.1 估算模型结构 509 26.7.2 cocomoⅱ模型 510 26.7.3 软件方程 511 26.8 面向对象项目估算 512 26.9 特殊估算技术 512 26.9.1 敏捷开发估算 512 26.9.2 web应用项目估算 513 26.10 自行开发或购买决策 514 26.10.1 创建决策树 514 26.10.2 外包 515 26.11 小结 517 习题与思考题 517 推荐读物与阅读信息 518 第27章 项目进度安排 519 27.1 基本概念 520 27.2 项目进度安排 521 27.2.1 基本原则 522 27.2.2 人员与工作量之间关系 522 27.2.3 工作量分配 524 27.3 为软件项目定义任务集 524 27.3.1 任务集举例 525 27.3.2 软件工程活动求精 525 27.4 定义任务网络 526 27.5 进度安排 527 27.5.1 时序图 528 27.5.2 跟踪进度 529 27.5.3 跟踪oo项目进展 530 27.5.4 webapp项目进度安排 530 27.6 挣值分析 533 27.7 小结 534 习题与思考题 534 推荐读物与阅读信息 535 第28章 风险管理 537 28.1 被动风险策略和主动风险策略 538 28.2 软件风险 538 28.3 风险识别 539 28.3.1 评估整体项目风险 540 28.3.2 风险因素和驱动因子 540 28.4 风险预测 541 28.4.1 建立风险表 542 28.4.2 评估风险影响 543 28.5 风险求精 545 28.6 风险缓解、监测和管理 545 28.7 rmmm计划 546 28.8 小结 548 习题与思考题 548 推荐读物与阅读信息 549 第29章 维护与再工程 550 29.1 软件维护 551 29.2 软件可支持性 552 29.3 再工程 552 29.4 业务过程再工程 553 29.4.1 业务过程 553 29.4.2 bpr模型 554 29.5 软件再工程 555 29.5.1 软件再工程过程模型 555 29.5.2 软件再工程活动 556 29.6 逆向工程 557 29.6.1 理解数据逆向工程 558 29.6.2 理解处理逆向工程 559 29.6.3 用户界面逆向工程 559 29.7 重构 560 29.7.1 代码重构 560 29.7.2 数据重构 560 29.8 正向工程 561 29.8.1 客户/服务器体系结构正向工程 562 29.8.2 面向对象体系结构正向工程 563 29.9 再工程经济学 563 29.10 小结 564 习题与思考题 564 推荐读物与阅读信息 565 第五部分 软件工程高级课题 第30章 软件过程改进 568 30.1 什么是spi 569 30.1.1 spi方法 569 30.1.2 成熟度模型 570 30.1.3 spi适合每个人吗 571 30.2 spi过程 571 30.2.1 评估和差距分析 572 30.2.2 教育和培训 573 30.2.3 选择和合理性判定 573 30.2.4 设置/迁移 574 30.2.5 评价 574 30.2.6 spi风险管理 574 30.2.7 关键成功因素 575 30.3 cmmi 576 30.4 人员cmm 579 30.5 其他spi框架 580 30.6 spi投资收益率 581 30.7 spi趋势 582 30.8 小结 582 习题与思考题 583 推荐读物与阅读信息 583 第31章 软件工程新趋势 584 31.1 技术演变 585 31.2 观察软件工程发展趋势 586 31.3 识别“软趋势” 587 31.3.1 管理复杂性 588 31.3.2 开放世界软件 589 31.3.3 意外需求 589 31.3.4 人才结构 590 31.3.5 软件构造块 590 31.3.6 对“价值”认识转变 591 31.3.7 开源 591 31.4 技术方向 592 31.4.1 过程趋势 592 31.4.2 巨大挑战 593 31.4.3 协同开发 594 31.4.4 需求工程 595 31.4.5 模型驱动软件开发 595 31.4.6 后现代设计 596 31.4.7 测试驱动开发 596 31.5 相关工具趋势 597 31.5.1 顺应软趋势工具 598 31.5.2 涉及技术趋势工具 599 31.6 小结 599 习题与思考题 599 推荐读物与阅读信息 600 第32章 结束语 601 32.1 再论软件重要性 601 32.2 人员及其构造系统方式 602 32.3 表示信息新模式 602 32.4 远景 603 32.5 软件工程责任 604 32.6 结束语 605 附录1 uml简介 607 附录2 面向对象概念 620
<p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;">对于大中台来讲,现在并没有十分严格定义,每个企业对其理解都是不同,有在技术上使用大中台模式,有在业务上使用大中台模式,有将两者相结合。“大中台,小前台”机制最初阿里提出时候,主要应用于O2O线上线下协同、电商等场景,对于电商来说,市场环境是瞬息万变,而前台是主要一线业务,这时就需要一个强大技术中台提供快速设计方法和系统性后端服务,去应对市场变化,灵活快速做出应对策略。 </p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;"><br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />技术中台从技术角度出发,数据中台从业务数据角度出发,业务中台站在企业全局角度出发,从整体战略、业务支撑、连接用户、业务创新等方面进行统筹规划,由基础中台、技术中台、数据中台L合支撑来建设业务中台。</p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;"> <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />本套中台案例基于真实工业界业务讲解,将多种经过工业界验证成熟技术解决方案呈现给大家,本套课程拒绝枯燥理论,全程代码实操,通过项目驱动方式,让大家能够真实体验中台工业界开发过程,帮助大家建立中台思维,学习本套课程全部内容可以帮助提高自主开发一套高性能高可用高扩展中台系统能力。本套案例集后端+前台+测试+运维一体,多方位带你熟悉全过程。</p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;"><br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />本课程将带大家实现一个真实工业界中台项目,该项目是基于真实知名互联网企业项目讲解,<br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />本课程将分为4个阶段: <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />第一阶段:会实现中台系统大部分核心服务,包括:会员中心,商品中心,交易中心,商家中心,支付中心,友凡商城等等。 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />第二阶段:进一步完善中台系统核心服务以及优化,包括:营销中心,搜索中心,店铺中心,缓存优化,数据库优化等等。 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />第三阶段:进一步优化以及完善产品服务,包括:前台系统,中台系统,友凡商城 友凡生鲜,友凡超市等等。 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />第四阶段:项目收尾阶段以及运维阶段,包括:压力测试,系统维护,系统部署,虚拟化方案,测试方案等等。 </p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;"><br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />本课程包含技术: <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />IDEA集成开发工具 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />SpringBoot 2.0.8.RELEASE <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />SpringCloud Finchley.SR2 Thymeleaf(模板引擎技术) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />支付宝支付<br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />MyCat、MySQL、Druid  <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />持续集成解决方案(Jenkins) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />认证解决方案(JWT) 网关解决方案(Zuul) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />负载均衡解决方案(Ribbon) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />分布式事务+多线程+事件驱动 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />MyBatis+Redis+Quartz <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />Ehcache+Hystrix <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />Nginx(Web服务器) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />Restful AOP技术 性能压力测试Jemter <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />VUE+jQuery+Ajax+NodeJS <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />VUE+Element-UI <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />容器部署Docker Kubertenes <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />Lucene、ElasticSearch(搜索) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />设计模式、RabbitMQ <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />Swagger2 文档生成工具 </p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;">人工智能(RNN、LSTM)<br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />多语言开发(Python、Django)</p> <p style="font-family: sans-serif; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 5px 0px; padding: 0px;">课程亮点: <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />1.与企业无缝对接、工业界真实业务场景 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />2.集后端+前台+测试+运维一体,多面学习技术链 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />3.多语言协调开发,熟悉语言应用场景<br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />4.支持项目快速迭代和开发 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />5.引入人工智能智能客服系统<br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />6.使用微服务技术栈+前后端分离构建项目 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />7.引入全新设计理念 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />8.全链路性能压力测试 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />9.分布式事务解决方案 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />10.事件驱动设计解决方案 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />11.多线程技术+设计模式实战应用 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />12.分布式架构下实现分布式定时调度 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />13.集成MyBatis实现多数据源路由实战 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />14.集成SpringCloud实现统一整合方案 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />15 Kubernetes+Docker容器化部署和管理 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />16.大型系统分布式部署方案 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />17.高性能系统(支撑海量数据) <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />18.高并发下服务降级、限流实战 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />19.实现高并发请求和实现高可用架构解决方案 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />20.全程代码实操,提供全部代码和资料 <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />21.提供答疑和提供企业技术方案咨询</p> <p style="color: #313d54; font-size: 16px; font-variant-numeric: normal; font-variant-east-asian: normal; margin: 0px; padding: 0px;">企业一线架构师讲授,代码在老师指导下企业可以复用,提供企业落地方案。  <br style="font-family: &quot; helvetica neue&quot;,helvetica,&quot;hiragino sans gb&quot;,arial,sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding: 0px;" />版权归作者所有,盗版将进行法律维权。 </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值