- Hands-On Software Engineering with Python
- Brian Allbee
- 518字
- 2021-06-24 18:20:30
The bigger picture
So, what does this bigger picture look like? There are three easily-identifiable areas of focus, with a fourth (call it user interaction) that either weaves through the other three or is broken down into its own groups.
Software engineering must pay heed to standards, especially non-technical (business) ones, and also best practices. These may or may not be followed but, since they are standards or best practices for a reason, not following them is something that should always be a conscious (and defensible) decision. It's not unusual for business-process standards and practices to span multiple software components, which can make them difficult to track if a certain degree of discipline and planning isn't factored into the development process to make them more visible. On the purely development-related side, standards and best practices can drastically impact the creation and upkeep of code, its ongoing usefulness, and even just the ability to find a given chunk of code, when necessary.
It's rare for code to be written simply for the sake of writing code. There's almost always some other value associated with it, especially if there's business value or actual revenue associated with a product that the code is a part of. In those cases, understandably, the people that are paying for the developmental effort will be very interested in ensuring that everything works as expected (code-quality) and can be deployed when expected (process-predictability).
Code-quality concerns will be addressed during the development of the hms_sys project a few chapters from now, and process-predictability is mostly impacted by the developmental methodologies discussed in Chapter 5, The hms_sys System-Project.
The remaining policy-and-procedure related concerns are generally managed by setting up and following various standards, processes, and best practices during the startup of a project (or perhaps a development team). Those items - things such as setting up source control, having standard coding conventions, and planning for repeatable, automated testing - will be examined in some detail during the set up chapter for the hms_sys project. Ideally, once these kinds of developmental process are in place, the ongoing activities that keep them running and reliable will just become habits, a part of the day-to-day process, almost fading into the background.
Finally, with more of a focus on the code side, software engineering must, by necessity, pay heed to entire systems, keeping a universal view of the system in mind. Software is composed of a lot of elements that might be classified as atomic; they are indivisible units in and of themselves, under normal circumstances. Just like their real-world counterparts, when they start to interact, things get interesting, and hopefully useful. Unfortunately, that's also when unexpected (or even dangerous) behaviors—bugs—usually start to appear.
This awareness is, perhaps, one of the more difficult items to cultivate. It relies on knowledge that may not be obvious, documented, or readily available. In large or complex systems, it may not even be obvious where to start looking, or what kinds of question to ask to try to find the information needed to acquire that knowledge.
- 過程控制工程及仿真
- 工業(yè)機(jī)器人產(chǎn)品應(yīng)用實戰(zhàn)
- 樂高機(jī)器人EV3設(shè)計指南:創(chuàng)造者的搭建邏輯
- 實時流計算系統(tǒng)設(shè)計與實現(xiàn)
- HBase Design Patterns
- Expert AWS Development
- 小型電動機(jī)實用設(shè)計手冊
- 樂高機(jī)器人—槍械武器庫
- 突破,Objective-C開發(fā)速學(xué)手冊
- Photoshop CS5圖像處理入門、進(jìn)階與提高
- 大數(shù)據(jù)案例精析
- 會聲會影X4中文版從入門到精通
- 一步步寫嵌入式操作系統(tǒng)
- 工業(yè)機(jī)器人集成應(yīng)用
- 大數(shù)據(jù):引爆新的價值點