构建之法--软件工程学习随笔之一
新学期开始了,我们接触到了一门全新的课程,我们教学所用的书也很有趣,书名叫做:《构建之法现代软件工程》。说实话,第一眼见到这本书的时非常欣喜,主要的原因之一就是这本书的书名让我耳目一新,非常的别具一格。课下我抽时间看了第一章的概论,终于揭开了软件工程在我心目中那神秘的面纱。
当然,有些“公式”我真的非常的佩服作者,比如说:软件=程序+软件工程,软件企业=软件+商业模式。这两个公式很清晰的把软件工程的地位呈现在了我眼前,他是软件的基础,也是软件企业的基础,没有软件工程,可能我们所说的软件只是一个没有灵魂的躯体,没有同样起同等重要作用的骨架。从概论中,当然也了解到了软件开发的不同阶段:1,玩具阶段。2,业余爱好阶段。3,探索阶段。4,成熟的产业阶段。了解到了软件工程是什么,软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。了解到了软件工程的几种特性:复杂性、不可见性、易变性、服从性和非连续性。虽然有的名词现在看来有些陌生,但是,我相信,通过这学期的学习,我会有个通透的理解。
课下,必不可少的当然还有作业,老师给我们留了几道题,其中的一道是用所学的语言编一个自动生成30道小学数学题。这个题目呈现在我眼前,自动生成我想到的是随机函数,30道题我想到的是使用一个循环。基于这个思想,花了差不多30分钟的时间,实现了基本的功能。当然,这个程序的缺陷还很多,就让我在以后的学习中逐渐完善吧!
附上程序的第一个版本:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
int main(int argc, char* argv[])
{
int i,m,n,x,s;
for(i = 0;i < 30;i ++)
{
srand(time(NULL));
m = rand()%100;
n = rand()%100;
x = rand()%2;
if (x == 0)
{
printf("%d + %d = ",m,n);
scanf("%d",&s);
if (s == m + n)
printf ("回答正确。");
else
printf ("回答错误。");
}
else
{
printf(" %d - %d = ",m,n);
scanf("%d",&s);
if (s == m - n)
printf ("回答正确。");
else
printf ("回答错误。");
}
printf ("请继续做题...\n");
}
}