王玉是什么字| 胚芽发育成什么| 胎盘前置是什么意思| nsaid是什么药| plory是什么牌子| 心气虚吃什么中成药| 凤梨和菠萝有什么区别| 脚底板出汗是什么原因| 肝脏在什么位置图片| 窒息是什么意思| 做梦和别人吵架意味着什么| kate是什么意思| 晕倒是什么原因引起的| 奥运五环绿色代表什么| 身是什么结构的字| 抑制剂是什么| 查肺部挂什么科| 六味地黄丸治什么病| 吐黄水是什么原因| 南辕北辙的意思是什么| 昆明有什么特产| 推迟月经吃什么药| 腹水是什么原因引起的| 姓郑的男孩取什么名字好| 宝宝病毒感染吃什么药效果好| 疱疹不能吃什么| scarves什么意思| ul是什么单位| 股骨头坏死有什么症状| 始祖鸟是什么鸟| 什么老什么老| 为什么妇科病要肛门塞药| 俄罗斯被称为什么| 龟头敏感早泄吃什么药| 如如不动是什么意思| 迁移宫是什么意思| 怀孕10多天有什么症状| 什么洗衣液是中性的| 泥石流是什么| 葡萄柚是什么水果| 闭麦是什么意思| 何五行属性是什么| 左右逢源是什么生肖| 药食同源是什么意思| 通讯地址填什么| 油脂旺盛是什么原因| 吃什么可以化痰| 欣字取名什么寓意| 叫人挪车打什么电话| 杜牧字什么| 萎缩性胃炎吃什么水果好| 阿司匹林是什么药| 肾小球肾炎吃什么药| 皈依证是什么意思| 郭德纲什么学历| 花雕酒是什么| 透析是什么意思| 诸侯国是什么意思| 低血压什么症状| 思量是什么意思| 4.23是什么星座| 笑掉大牙是什么动物| 天蝎属于什么象星座| 肝火旺盛吃什么药效果最好| 手机root后有什么好处和坏处| 为什么膝盖弯曲就疼痛| 吃完麻辣烫吃什么补救| 支原体培养及药敏是检查什么| 尿黄是什么原因引起的男性| 脉压是什么| 流连忘返的返是什么意思| 脾虚湿气重吃什么中成药| 月经来了同房会导致什么后果| 新疆是什么地貌| 思维方式是什么意思| 剖腹产后吃什么| 暖巢早衰是什么原因| 珊瑚色是什么颜色| 令羽读什么| 哈尼是什么意思| 男人为什么离不开情人| 脚肿什么原因引起的| 夏季风寒感冒吃什么药| 钠氯偏低是什么原因| 上海新华医院擅长什么| 落差是什么意思| 梅花在什么季节开放| 肛门溃烂用什么药膏| 地球为什么是圆的| 公历年份是什么意思| 病毒长什么样子| 告人诈骗需要什么证据| 核磁共振检查什么| 副县长是什么级别| 补钾用什么药| 做照影是检查什么| 鸽子红鼻头喂什么药| 二月是什么星座| 皮肤起水泡发痒是什么病| 印模是什么意思| 控评是什么意思| 睾丸疼痛什么原因| 心身医学科是看什么病| 疱疹用什么药好得快| 铁锚是什么意思| 1965年什么时候退休| 形影不离是什么意思| 中国四大发明是什么| 腋下皮肤发黑是什么原因引起的| 假饵适合钓什么鱼| 痰多吃什么好| 睡醒口干舌燥是什么原因| 糖尿病可以喝什么饮料| 什么叫专科| 小家碧玉是什么生肖| 93年属什么的生肖| 在水一方是什么意思| 阴部痒是什么原因| 今年16岁属什么生肖| 没有痔疮大便出血是什么原因| only是什么牌子| 世界之大无奇不有是什么意思| 端午节是什么星座| 大学毕业是什么学历| rf是什么意思| 梅花三弄的三弄指什么| 七月半是什么日子| 无菌性前列腺炎吃什么药效果好| 红米有什么功效和作用| 耄耋之年是什么意思| 鱼缸为什么不能送人| 属鸡本命佛是什么佛| 胃窦溃疡a1期是什么意思| 头发拉焦了有什么补救| 红细胞分布宽度偏低是什么意思| 色是什么结构| ABA是什么植物激素| 有什么组词| 眼睛突然出血是什么原因导致| 369是什么意思| 微白蛋白高是什么情况| 疖肿是什么意思| 830是什么意思| 癌胚抗原偏高说明什么| 开塞露用多了有什么副作用| fc什么意思| 永浴爱河是什么意思| 为什么会得耳石症| 水军是什么意思| sorona是什么面料| 为什么突然长癣了| 曼月乐是什么| 为什么眼睛会有红血丝| 类风湿吃什么药有效| 脸发红发烫是什么原因| 身上长扁平疣是什么原因| 吃什么食物下奶快而且奶多| 依达拉奉注射功效与作用是什么| 下午两点是什么时辰| 吃什么祛湿| 7月26是什么星座| 沙拉酱可以做什么美食| 什么是spa| bossini是什么牌子| 试婚是什么意思啊| 银黑了用什么可以洗白| 脚板麻木是什么原因| 三次元是什么意思| nba打铁是什么意思| 病毒性肠炎吃什么药| 烤乳扇是什么| trx是什么| 滴滴什么意思| 宿醉是什么意思| 气血不足吃什么东西| 睡觉脚麻是什么原因| 病案号是什么意思| 四肢厥逆是什么意思| 1987年属什么的| 拍花子是什么意思| 什么是脚气| 为什么没人穿卡帕| 颈椎增生吃什么药| 怀孕了吃什么药能流掉| 曲马多是什么药| 胆固醇高不能吃什么食物| 什么的街道| 二月二十五号是什么星座| 接下来有什么节日| 放大镜不能放大的东西是什么| 上什么环最好最安全伤害小| 淋巴用什么药可以消除| 吃什么食物对眼睛好| 锅底灰能治什么病| 玉皇大帝姓什么| 男性霉菌感染用什么药| 为什么老是打嗝| 自由意志是什么意思| 紫癜病是什么病| 怀孕前三个月应该注意什么| 解酒吃什么| 身体有湿气有什么症状| 颈椎病吃什么药最好| 儿童干咳吃什么药| 义举是什么意思| 1968年属什么生肖| 什么的花纹| 钴蓝色是什么颜色| flour什么意思| 书卷气是什么意思| 麦昆牌子是什么档次| 泌乳素偏高是什么原因| 中产家庭的标准是什么| 孕妇血压低吃什么能补上来| 海参什么季节吃好| 心凉是什么意思| 刺五加配什么药治失眠| 旋转跳跃我闭着眼是什么歌| 女的肾虚是什么症状| 身上遇热就痒是什么病| dep是什么意思| 咳白色泡沫痰吃什么药| 铁观音属于什么茶类| 健康证需要什么材料| 胆囊息肉有什么症状| 女人排卵期有什么反应| 拔火罐起水泡是什么原因| 背部爱出汗是什么原因| 谷草转氨酶偏低是什么原因| 梦见爆炸是什么意思| 好样的什么意思| 宝宝感冒流鼻涕吃什么药| 什么是夫妻宫| 五月一号什么星座| 2024是什么年| 人体缺钾是什么症状| 高密度灶是什么意思| 金牛座属于什么象星座| 人中短代表什么| 什么的姑娘| 射手女和什么星座最配| 夏季吃什么菜| 三个山是什么字| 爱居兔女装是什么档次| 小孩补钙吃什么最好| 什么平稳| ais什么意思| 什么病可以鉴定病残| 什么牛什么毛| r0lex是什么牌子手表| 什么姿势容易怀孕| 甘露醇是治什么的| 滚床单什么意思| 西芹和芹菜有什么区别| 不吃肉对身体有什么影响| 秉着是什么意思| tu是什么意思| 农历五月二十一是什么星座| 稷是什么作物| 1991年属羊的是什么命| 腰间盘膨出和突出有什么区别| 紧张手抖吃什么药| 眼有眼屎是什么原因| 阳虚水泛是什么症状| 百度Jump to content

“铁总”又要调价了 铁路专家:涨幅过高不合理

From Wikipedia, the free encyclopedia
百度 我们产科现在两层楼的病房,二孩生育的比例占到一半以上。

Software development is the process of designing and implementing a software solution to satisfy a user. The process is more encompassing than programming, writing code, in that it includes conceiving the goal, evaluating feasibility, analyzing requirements, design, testing and release. The process is part of software engineering which also includes organizational management, project management, configuration management and other aspects.[1]

Software development involves many skills and job specializations including programming, testing, documentation, graphic design, user support, marketing, and fundraising.

Software development involves many tools including: compiler, integrated development environment (IDE), version control, computer-aided software engineering, and word processor.

The details of the process used for a development effort vary. The process may be confined to a formal, documented standard, or it can be customized and emergent for the development effort. The process may be sequential, in which each major phase (i.e., design, implement, and test) is completed before the next begins, but an iterative approach – where small aspects are separately designed, implemented, and tested – can reduce risk and cost and increase quality.

Methodologies

[edit]
Flowchart of the evolutionary prototyping model, an iterative development model[2]

Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project, and team considerations.[3]

  • The simplest methodology is the "code and fix", typically used by a single programmer working on a small project. After briefly considering the purpose of the program, the programmer codes it and runs it to see if it works. When they are done, the product is released. This methodology is useful for prototypes but cannot be used for more elaborate programs.[4]
  • In the top-down waterfall model, feasibility, analysis, design, development, quality assurance, and implementation occur sequentially in that order. This model requires one step to be complete before the next begins, causing delays, and makes it impossible to revise previous steps if necessary.[5][6][7]
  • With iterative processes these steps are interleaved with each other for improved flexibility, efficiency, and more realistic scheduling. Instead of completing the project all at once, one might go through most of the steps with one component at a time. Iterative development also lets developers prioritize the most important features, enabling lower priority ones to be dropped later on if necessary.[6][8] Agile is one popular method, originally intended for small or medium sized projects, that focuses on giving developers more control over the features that they work on to reduce the risk of time or cost overruns.[9] Derivatives of agile include extreme programming and Scrum.[9] Open-source software development typically uses agile methodology with concurrent design, coding, and testing, due to reliance on a distributed network of volunteer contributors.[10]
  • Beyond agile, some companies integrate information technology (IT) operations with software development, which is called DevOps or DevSecOps including computer security.[11] DevOps includes continuous development, testing, integration of new code in the version control system, deployment of the new code, and sometimes delivery of the code to clients.[12] The purpose of this integration is to deliver IT services more quickly and efficiently.[11]

Another focus in many programming methodologies is the idea of trying to catch issues such as security vulnerabilities and bugs as early as possible (shift-left testing) to reduce the cost of tracking and fixing them.[13]

In 2009, it was estimated that 32% of software projects were delivered on time and on budget, and with full functionality. An additional 44% were delivered, but were missing at least one of their features. The remaining 24% were cancelled before release.[14]

Steps

[edit]

Software development life cycle refers to the systematic process of developing applications.[15]

Feasibility

[edit]

The sources of ideas for software products are plentiful. These ideas can come from market research, including the demographics of potential new customers, existing customers, sales prospects who rejected the product, other internal software development staff, or a creative third party. Ideas for software products are usually first evaluated by marketing personnel for economic feasibility, fit with existing channels of distribution, possible effects on existing product lines, required features, and fit with the company's marketing objectives. In the marketing evaluation phase, the cost and time assumptions are evaluated.[16] The feasibility analysis estimates the project's return on investment, its development cost and timeframe. Based on this analysis, the company can make a business decision to invest in further development.[17] After deciding to develop the software, the company is focused on delivering the product at or below the estimated cost and time, and with a high standard of quality (i.e., lack of bugs) and the desired functionality. Nevertheless, most software projects run late, and sometimes compromises are made in features or quality to meet a deadline.[18]

Analysis

[edit]

Software analysis begins with a requirements analysis to capture the business needs of the software.[19] Challenges for the identification of needs are that current or potential users may have different and incompatible needs, may not understand their own needs, and change their needs during the process of software development.[20] Ultimately, the result of analysis is a detailed specification for the product that developers can work from. Software analysts often decompose the project into smaller objects, components that can be reused for increased cost-effectiveness, efficiency, and reliability.[19] Decomposing the project may enable a multi-threaded implementation that runs significantly faster on multiprocessor computers.[21]

During the analysis and design phases of software development, structured analysis is often used to break down the customer's requirements into pieces that can be implemented by software programmers.[22] The underlying logic of the program may be represented in data-flow diagrams, data dictionaries, pseudocode, state transition diagrams, and/or entity relationship diagrams.[23] If the project incorporates a piece of legacy software that has not been modeled, this software may be modeled to help ensure it is correctly incorporated with the newer software.[24]

Design

[edit]

Design involves choices about the implementation of the software, such as which programming languages and database software to use, or how the hardware and network communications will be organized. Design may be iterative with users consulted about their needs in a process of trial and error. Design often involves people who are expert in aspects such as database design, screen architecture, and the performance of servers and other hardware.[19] Designers often attempt to find patterns in the software's functionality to spin off distinct modules that can be reused with object-oriented programming. An example of this is the model–view–controller, an interface between a graphical user interface and the backend.[25]

Programming

[edit]

The central feature of software development is creating and understanding the software that implements the desired functionality.[26] There are various strategies for writing the code. Cohesive software has various components that are independent from each other.[19] Coupling is the interrelation of different software components, which is viewed as undesirable because it increases the difficulty of maintenance.[27] Often, software programmers do not follow industry best practices, resulting in code that is inefficient, difficult to understand, or lacking documentation on its functionality.[28] These standards are especially likely to break down in the presence of deadlines.[29] As a result, testing, debugging, and revising the code become much more difficult. Code refactoring, for example, adding more comments to the code, is a solution to improve the understandability of the code.[30]

Testing

[edit]

Testing is the process of ensuring that the code executes correctly and without errors. Debugging is performed by each software developer on their own code to confirm that the code does what it is intended to. In particular, it is crucial that the software executes on all inputs, even if the result is incorrect.[31] Code reviews by other developers are often used to scrutinize new code added to the project, and according to some estimates dramatically reduce the number of bugs persisting after testing is complete.[32] Once the code has been submitted, quality assurance – a separate department of non-programmers for most large companies – test the accuracy of the entire software product. Acceptance tests derived from the original software requirements are a popular tool for this.[31] Quality testing also often includes stress and load checking (whether the software is robust to heavy levels of input or usage), integration testing (to ensure that the software is adequately integrated with other software), and compatibility testing (measuring the software's performance across different operating systems or browsers).[31] When tests are written before the code, this is called test-driven development.[33]

Production

[edit]

Production is the phase in which software is deployed to the end user.[34] During production, the developer may create technical support resources for users[35][34] or a process for fixing bugs and errors that were not caught earlier. There might also be a return to earlier development phases if user needs changed or were misunderstood.[34]

Workers

[edit]

Software development is performed by software developers, usually working on a team. Efficient communications between team members is essential to success. This is more easily achieved if the team is small, used to working together, and located near each other.[36] Communications also help identify problems at an earlier stage of development and avoid duplicated effort. Many development projects avoid the risk of losing essential knowledge held by only one employee by ensuring that multiple workers are familiar with each component.[37] Software development involves professionals from various fields, not just software programmers but also product managers who set the strategy and roadmap for the product,[38] individuals specialized in testing, documentation writing, graphic design, user support, marketing, and fundraising. Although workers for proprietary software are paid, most contributors to open-source software are volunteers.[39] Alternately, they may be paid by companies whose business model does not involve selling the software, but something else – such as services and modifications to open source software.[40]

Models and tools

[edit]

Computer-aided software engineering

[edit]

Computer-aided software engineering (CASE) is tools for the partial automation of software development.[41] CASE enables designers to sketch out the logic of a program, whether one to be written, or an already existing one to help integrate it with new code or reverse engineer it (for example, to change the programming language).[42]

Documentation

[edit]

Documentation comes in two forms that are usually kept separate – one intended for software developers, and another made available to the end user to help them use the software.[43][44] Most developer documentation is in the form of code comments for each file, class, and method that cover the application programming interface (API)—how the piece of software can be accessed by another—and often implementation details.[45] This documentation is helpful for new developers to understand the project when they begin working on it.[46] In agile development, the documentation is often written at the same time as the code.[47] User documentation is more frequently written by technical writers.[48]

Effort estimation

[edit]

Accurate estimation is crucial at the feasibility stage and in delivering the product on time and within budget. The process of generating estimations is often delegated by the project manager.[49] Because the effort estimation is directly related to the size of the complete application, it is strongly influenced by the addition of features in the requirements—the more requirements, the higher the development cost. Aspects not related to functionality, such as the experience of the software developers and code reusability, are also essential to consider in estimation.[50] As of 2019, most of the tools for estimating the amount of time and resources for software development were designed for conventional applications and are not applicable to web applications or mobile applications.[51]

Integrated development environment

[edit]
Anjuta, a C and C++ IDE for the GNOME environment

An integrated development environment (IDE) supports software development with enhanced features compared to a simple text editor.[52] IDEs often include automated compiling, syntax highlighting of errors,[53] debugging assistance,[54] integration with version control, and semi-automation of tests.[52]

Version control

[edit]

Version control is a popular way of managing changes made to the software. Whenever a new version is checked in, the software saves a backup of all modified files. If multiple programmers are working on the software simultaneously, it manages the merging of their code changes. The software highlights cases where there is a conflict between two sets of changes and allows programmers to fix the conflict.[55]

View model

[edit]
The TEAF Matrix of Views and Perspectives

A view model is a framework that provides the viewpoints on the system and its environment, to be used in the software development process. It is a graphical representation of the underlying semantics of a view.

The purpose of viewpoints and views is to enable human engineers to comprehend very complex systems and to organize the elements of the problem around domains of expertise. In the engineering of physically intensive systems, viewpoints often correspond to capabilities and responsibilities within the engineering organization.[56]

Fitness functions

[edit]

Fitness functions are automated and objective tests to ensure that the new developments don't deviate from the established constraints, checks and compliance controls.[57]

Intellectual property

[edit]

Intellectual property can be an issue when developers integrate open-source code or libraries into a proprietary product, because most open-source licenses used for software require that modifications be released under the same license. As an alternative, developers may choose a proprietary alternative or write their own software module.[58]

References

[edit]
  1. ^ Dooley 2017, p. 1.
  2. ^ Dooley 2017, p. 12.
  3. ^ System Development Methodologies for Web-Enabled E-Business: A Customization Framework Linda V. Knight (DePaul University, USA), Theresa A. Steinbach (DePaul University, USA), and Vince Kellen (Blue Wolf, USA)
  4. ^ Dooley 2017, pp. 8–9.
  5. ^ Dooley 2017, p. 9.
  6. ^ a b Langer 2016, pp. 2–3, 5–6.
  7. ^ Tucker, Morelli & de Silva 2011, p. 8.
  8. ^ Dooley 2017, p. 11.
  9. ^ a b Dooley 2017, p. 13.
  10. ^ Tucker, Morelli & de Silva 2011, pp. 41–42.
  11. ^ a b Vishnu 2019, pp. 1–2.
  12. ^ Laukkanen, Eero; Itkonen, Juha; Lassenius, Casper (2017). "Problems, causes and solutions when adopting continuous delivery—A systematic literature review". Information and Software Technology. 82: 55–79. doi:10.1016/j.infsof.2016.10.001.
  13. ^ Winters, Manshreck & Wright 2020, p. 17.
  14. ^ Tucker, Morelli & de Silva 2011, p. 6.
  15. ^ Saif 2019, pp. 46–47.
  16. ^ Morris 2001, p. 1.10.
  17. ^ Langer 2016, p. 7.
  18. ^ Dooley 2017, pp. 3, 8.
  19. ^ a b c d Langer 2016, p. 8.
  20. ^ Langer 2016, pp. 2–3.
  21. ^ Dooley 2017, pp. 193–194.
  22. ^ Langer 2016, pp. 103–104.
  23. ^ Langer 2016, pp. 117, 127, 131, 137, 141.
  24. ^ Langer 2016, p. 106.
  25. ^ Dooley 2017, p. 142.
  26. ^ Tucker, Morelli & de Silva 2011, p. 31.
  27. ^ Langer 2016, pp. 8–9.
  28. ^ Tucker, Morelli & de Silva 2011, pp. 31–32.
  29. ^ Tucker, Morelli & de Silva 2011, pp. 34–35.
  30. ^ Tucker, Morelli & de Silva 2011, pp. 31–32, 35.
  31. ^ a b c Langer 2016, p. 9.
  32. ^ Dooley 2017, p. 272.
  33. ^ Tucker, Morelli & de Silva 2011, p. 9.
  34. ^ a b c Langer 2016, p. 10.
  35. ^ Tucker, Morelli & de Silva 2011, p. 37.
  36. ^ Dooley 2017, p. 2.
  37. ^ Winters, Manshreck & Wright 2020, pp. 30–31.
  38. ^ "What Does a Product Manager Do? And How to Become One". Coursera. 21 January 2025. Retrieved 5 May 2025.
  39. ^ Tucker, Morelli & de Silva 2011, p. 7.
  40. ^ Tucker, Morelli & de Silva 2011, pp. 14–15.
  41. ^ Langer 2016, p. 22.
  42. ^ Langer 2016, pp. 108–110, 206.
  43. ^ Tucker, Morelli & de Silva 2011, p. 243.
  44. ^ Winters, Manshreck & Wright 2020, p. 192.
  45. ^ Winters, Manshreck & Wright 2020, pp. 193–195.
  46. ^ Tucker, Morelli & de Silva 2011, p. 143.
  47. ^ Tucker, Morelli & de Silva 2011, p. 144.
  48. ^ Winters, Manshreck & Wright 2020, p. 204.
  49. ^ Saif 2019, pp. 50–51.
  50. ^ Saif 2019, pp. 52–53.
  51. ^ Saif 2019, p. 45.
  52. ^ a b Tucker, Morelli & de Silva 2011, p. 68.
  53. ^ Dooley 2017, p. 236.
  54. ^ Dooley 2017, p. 239.
  55. ^ Dooley 2017, pp. 246–247.
  56. ^ Edward J. Barkmeyer ea (2003). Concepts for Automating Systems Integration Archived 25 January 2017 at the Wayback Machine NIST 2003.
  57. ^ Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media. 2020. ISBN 978-1492043454.
  58. ^ Langer 2016, pp. 44–45.

Further reading

[edit]
  • Conde, Dan (2002). Software Product Management: Managing Software Development from Idea to Product to Marketing to Sales. Aspatore Books. ISBN 1587622025.
  • Davis, A. M. (2005). Just enough requirements management: Where software development meets marketing. Dorset House Publishing Company, Incorporated. ISBN 0932633641.
  • Dooley, John F. (2017). Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring. Apress. ISBN 978-1-4842-3153-1.
  • Kit, Edward (1992). Software Testing in The Real World. Addison-Wesley Professional. ISBN 0201877562.
  • Hasted, Edward (2005). Software That Sells: A Practical Guide to Developing and Marketing Your Software Project. Wiley Publishing. ISBN 0764597833.
  • Hohmann, Luke (2003). Beyond Software Architecture: Creating and Sustaining Winning Solutions. Addison-Wesley Professional. ISBN 0201775948.
  • Horch, John W. (March 1995). "Two Orientations On How To Work With Objects". IEEE Software. 12 (2): 117–118. ProQuest 215832531.
  • Langer, Arthur M. (2016). Guide to Software Development: Designing and Managing the Life Cycle. Springer. ISBN 978-1-4471-6799-0.
  • McCarthy, Jim (1995). Dynamics of Software Development. Microsoft Press. ISBN 1556158238.
  • Morris, Joseph M. (2001). Software industry accounting (2nd ed.). John Wiley & Sons. OCLC 53863959.
  • Rittinghouse, John (2003). Managing Software Deliverables: A Software Development Management Methodology. Digital Press. ISBN 155558313X.
  • Saif, Syed Mohsin (2019). "Software Effort Estimation for Successful Software Application Development". In Vishnu, Pendyala (ed.). Tools and Techniques for Software Development in Large Organizations: Emerging Research and Opportunities: Emerging Research and Opportunities. IGI Global. pp. 45–97. ISBN 978-1-7998-1865-6.
  • Tucker, Allen; Morelli, Ralph; de Silva, Chamindra (2011). Software Development: An Open Source Approach. CRC Press. ISBN 978-1-4398-8460-7.
  • Vishnu, Pendyala (2019). "Evolution of Integration, Build, Test, and Release Engineering Into DevOps and to DevSecOps". In Vishnu, Pendyala (ed.). Tools and Techniques for Software Development in Large Organizations: Emerging Research and Opportunities: Emerging Research and Opportunities. IGI Global. pp. 1–20. ISBN 978-1-7998-1865-6.
  • Wiegers, Karl E. (2005). More About Software Requirements: Thorny Issues and Practical Advice. Microsoft Press. ISBN 0735622671.
  • Winters, Titus; Manshreck, Tom; Wright, Hyrum (2020). Software Engineering at Google: Lessons Learned from Programming Over Time. O'Reilly Media, Inc. ISBN 978-1-4920-8276-7.
  • Wysocki, Robert K. (2006). Effective Software Project Management. Wiley. ISBN 0764596365.
[edit]
黄疸高是什么原因 为什么脚会肿 什么是慢性萎缩性胃炎 为什么会一直咳嗽 湿热内蕴证有什么症状
麦粒肿吃什么药 大圈是什么意思 减肥吃什么肉类 梦见自己生二胎是什么意思 kpi是什么
狗女配什么属相最好 颈椎退行性病变是什么意思 胃动力不足是什么原因造成的 什么叫易经 降血脂吃什么药
留存是什么意思 四维空间是什么 蚝油是什么做的 致什么意思 破瓦法是什么
牙周病是什么hcv8jop0ns9r.cn 750金是什么金hcv9jop0ns5r.cn 兆字五行属什么hcv9jop4ns3r.cn 爬山带什么食物比较好hcv9jop0ns5r.cn 秋天有什么水果hcv9jop0ns5r.cn
原教旨主义是什么意思hcv8jop0ns7r.cn 手指长水泡很痒是什么原因hcv8jop4ns0r.cn 剪发虫是什么hcv9jop6ns0r.cn 舌头发白是什么原因hcv7jop6ns0r.cn 为什么会尿频尿急hcv9jop3ns8r.cn
肾气不固吃什么中成药zhongyiyatai.com 吃黄精有什么好处hcv8jop4ns5r.cn 经常腰酸是什么原因女性hcv7jop6ns1r.cn 朝什么暮什么hcv8jop9ns1r.cn 昙花有什么功效与作用hcv8jop8ns8r.cn
81什么节hcv9jop5ns8r.cn 狮子属于什么科hcv9jop0ns2r.cn 中药和中成药有什么区别hcv9jop5ns2r.cn 鹿晗的原名叫什么hcv8jop0ns3r.cn 养兰花用什么土最好hcv7jop6ns0r.cn
百度